useradd
不同linux系統(tǒng)下 useradd的默認選項有所差別,比如centos下默認是useradd -m -k ,ubuntu下默認是useradd -M
userdel
usermod
passwd,chpasswd
chsh,chfn,chage
具體參數(shù)用man 解決
只需要在/etc目錄下建立一個nologin文檔,那么Linux上的所有用戶(除了root以外)都無法登錄!!
Linux下鎖定賬號,禁止登錄系統(tǒng)的設(shè)置總結(jié)
相關(guān)配置文件
| 配置文件 | 作用 |
|---|---|
| /etc/passwd | 用戶賬戶信息。 |
| /etc/shadow | 安全用戶賬戶信息。 |
| /etc/group | 組賬戶信息。 |
| /etc/gshadow | 安全組賬戶信息。 |
| /etc/default/useradd | 賬戶創(chuàng)建的默認值。 |
| /etc/skel/ | 包含默認文件的目錄。 |
| /etc/subgid | Per user subordinate group IDs. |
| /etc/subuid | Per user subordinate user IDs. |
| /etc/login.defs | Shadow 密碼套件配置。 |
密碼字段特殊字符的含義
/etc/shadow usually contains the following user information:
User login name
salt and hashed password OR a status exception value e.g.:
"NP" or "!" or null - No password, the account has no password.
"LK" or "" - the account is Locked, user will be unable to log-in
"!!" - the password has expired
密碼項為 和 密碼前加! 都可以使用戶無法登錄
*的本質(zhì)就是賬戶被鎖定,不能登錄,從root su過去也不行.
!的本質(zhì)是使用戶的密碼不可用,正常登錄都會提示認證失敗,但是從root能su過去,因為root su的時候不要密碼.
useradd常用選項
| 選項 | 作用 |
|---|---|
| -D, --defaults | 查看默認配置 |
| -b, --base-dir BASE_DIR | 如果沒有使用 -d HOME_DIR,則使用默認的基目錄。BASE_DIR 加上賬戶名就是主目錄。如果沒有使用 -m 選項,BASE_DIR 必須已經(jīng)存在。如果選項沒有指定,useradd 將使用 /etc/default/useradd 中的 HOME 變量,或者默認的 /home。 |
| -c, --comment COMMENT | 任何字符串。通常是關(guān)于登錄的簡短描述,當(dāng)前用于用戶全名 |
| -d, --home-dir HOME_DIR | 指定用戶的家目錄 |
| -e, --expiredate EXPIRE_DATE | 用戶賬戶將被禁用的日期。日期以 YYYY-MM-DD 格式指定。如果沒有指定,useradd 將使用 /etc/default/useradd 中 EXPIRE 變量指定的默認過期日期,或者一個空字符串(不過期)。 |
| -f, --inactive INACTIVE | 密碼過期后,賬戶被徹底禁用之前的天數(shù)。0 表示立即禁用,-1 表示禁用這個功能。如果未指定,useradd 將使用 /etc/default/useradd 中的 INACTIVE 指定的默認禁用周期,或者默認為 -1 |
| -g, --gid GROUP | 用戶初始登陸組的組名或號碼。組名必須已經(jīng)存在。組號碼必須指代已經(jīng)存在的組。如果沒有指定, useradd 的行為將依賴于 /etc/login.defs 文件中的 USERGROUPS_ENAB 參數(shù)。如果此參數(shù)設(shè)置為了 yes (或者在命令行上指定了-U/--user-group),將會為用戶創(chuàng)建一個組,組名和登錄名相同。如果選項設(shè)置為了 no (或者在命令行上指定了 -N/--no-user-group),useradd 會把新用戶的主組設(shè)置為 /etc/default/useradd 中 GROUP變量指定的值,再或者默認是 100。 |
| -G, --groups GROUP1[,GROUP2,...[,GROUPN]]] | 用戶還屬于的附加組列表。每個組都用逗號隔開,沒有中間的空格。這里的組受到了 -g 選項給定的組同樣的限制。默認上,用戶只屬于初始組 |
| -k, --skel SKEL_DIR | 骨架目錄,包含使用 useradd 創(chuàng)建用戶時,要復(fù)制到用戶主目錄中的文件和目錄。這個選項只有在指定 -m (或 --create-home) 選項時才有效。如果此項沒有設(shè)置,骨架目錄使用 /etc/default/useradd 中的 SKEL 的變量或默認為 /etc/skel。如果可以,也復(fù)制 ACL 和擴展屬性. |
| -K, --key KEY=VALUE | 默認覆蓋 /etc/login.defs (UID_MIN, UID_MAX, UMASK, PASS_MAX_DAYS 及其它)。 例如:-K PASS_MAX_DAYS=-1 可以用于創(chuàng)建一個密碼不會過期的系統(tǒng)賬戶,即使系統(tǒng)賬戶沒有密碼??梢灾付ǘ鄠€ -K選項,如:-K UID_MIN=100 -K UID_MAX=499 |
| -l, --no-log-init | 不要將用戶添加到最近登錄和登錄失敗數(shù)據(jù)庫。默認上,最近登錄和登錄失敗中用戶的條目會被重置,以避免重新使用先前刪除的用戶的條目。 |
| -m, --create-home | 如果不存在,則創(chuàng)建用戶主目錄。骨架目錄中的文件和目錄(可以使用 -k 選項指定),將會復(fù)制到主目錄。默認上,如果沒有指定此選項并且 CREATE_HOME 沒有啟用,不會創(chuàng)建主目錄。 |
| -M | 不創(chuàng)建用戶主目錄,即使系統(tǒng)在 /etc/login.defs 中的設(shè)置 (CREATE_HOME) 為 yes。 |
| -N, --no-user-group | 不要創(chuàng)建同名組,而是將用戶添加到 -g 選項指定的組,或根據(jù) /etc/default/useradd 中的 GROUP 變量。如果沒有指定 -g, -N 和 -U 選項,默認行為由 /etc/login.defs 中的 USERGROUPS_ENAB 變量指定。 |
| -o, --non-unique | 允許使用重復(fù)的 UID 創(chuàng)建用戶賬戶。此選項只有和 -u 選項組合使用才有效。 |
| -p, --password PASSWORD | 加密了的密碼,就像 crypt(3) 的返回值。默認為禁用密碼。注意:不推薦使用這個選項,因為密碼(或加密過的密碼)會被用戶通過列出這個過程而看到。您應(yīng)該確保密碼符合系統(tǒng)的密碼政策。 |
| -r, --system | 創(chuàng)建一個系統(tǒng)賬戶。System users will be created with no aging information in /etc/shadow, and their numeric identifiers are chosen in the SYS_UID_MIN-SYS_UID_MAX range, defined in /etc/login.defs, instead of UID_MIN-UID_MAX (and their GID counterparts for the creation of groups).注意:useradd 不會為這種用戶創(chuàng)建主目錄,無論 /etc/login.defs (CREATE_HOME) 中是的默認設(shè)置是怎樣。如果想為要創(chuàng)建的系統(tǒng)賬戶創(chuàng)建主目錄,需要指定 -m 選項。 |
| -R, --root CHROOT_DIR | Apply changes in the CHROOT_DIR directory and use the configuration files from the CHROOT_DIR directory. |
| -s, --shell SHELL | 用戶的登錄 shell 名。默認為留空,讓系統(tǒng)根據(jù) /etc/default/useradd 中的 SHELL 變量選擇默認的登錄 shell,默認為空字符串。 |
| -u, --uid UID | 用戶 ID 的數(shù)字值。此值必須為唯一的,除非使用了 -o 選項。此值必須非負,默認使用大于等于 UID_MIN,且大于任何其他用戶 ID 最小值。請參考 -r 選項和 UID_MAX 的描述 |
| -U, --user-group | 創(chuàng)建一個和用戶同名的組,并將用戶添加到組中。如果沒有指定 -g, -N 和 -U 選項,默認行為由 /etc/login.defs 中的 USERGROUPS_ENAB 變量指定。 |
| -Z, --selinux-user SEUSER | 用戶登陸的 SELinux 用戶。默認為留空,這會造成系統(tǒng)選擇默認的 SELinux 用戶。 |
| -D | 只帶 -D 選項使用時,useradd 將顯示當(dāng)前的默認值。-D 和其它選項配合使用時,useradd 將為指定的選項更新默認值。有效的“更改默認值”選項有: |
| -D -b, --base-dir BASE_DIR | 新用戶主目錄的路徑前綴。如果創(chuàng)建新賬戶時,沒有使用 -d 選項,用戶的名稱將會綴在 BASE_DIR 的后邊形成新用戶的主目錄名。 這個選擇在 /etc/default/useradd 中設(shè)置 HOME 選項。 |
| -D -e, --expiredate EXPIRE_DATE | 禁用此用戶賬戶的日期.此選項在 /etc/default/useradd 中設(shè)置 EXPIRE 變量。 |
| -D -f, --inactive INACTIVE | 密碼過期到賬戶被禁用之前的天數(shù)。這個選項在 /etc/default/useradd 中設(shè)置 INACTIVE 變量。 |
| -D -g, --gid GROUP | 新用戶初始組的組名或 ID (使用了 -N/--no-user-group 或者 /etc/login.defs 中的變量 USERGROUPS_ENAB 設(shè)置為 no 時)。給出的組必須存在,并且數(shù)字組 ID 必須有一個已經(jīng)存在的項。這個選項在 /etc/default/useradd 中設(shè)置 GROUP 變量。 |
| -D -s, --shell SHELL | 新用戶的登錄 shell 名。這個選項在 /etc/default/useradd 設(shè)置 SHELL 變量。 |
/etc/login.defs 配置
| 變量 | 含義 |
|---|---|
| CREATE_HOME (boolean) | 指示是否應(yīng)該為新用戶默認創(chuàng)建主目錄。此設(shè)置并不應(yīng)用到系統(tǒng)用戶,并且可以使用命令行覆蓋。 |
| GID_MAX (number), GID_MIN (number) | useradd,groupadd 或 newusers 創(chuàng)建的常規(guī)組的組 ID 的范圍。GID_MIN 和 GID_MAX 的默認值分別是 1000 和 60000。 |
| MAIL_DIR (string) | 郵箱目錄。修改或刪除用戶賬戶時需要處理郵箱,如果沒有指定,將使用編譯時指定的默認值。 |
| MAIL_FILE (string) | 定義用戶郵箱文件的位置(相對于主目錄)。 |
| MAIL_DIR and MAIL_FILE | 變量由 useradd,usermod 和 userdel 用于創(chuàng)建、移動或刪除用戶郵箱。 |
| MAX_MEMBERS_PER_GROUP (number) | 每個組條目的最大成員數(shù)。達到最大值時,在 /etc/group 開始一個新條目(行)(使用同樣的名稱,同樣的密碼,同樣的 GID)。默認值是 0,意味著組中的成員數(shù)沒有限制。 此功能(分割組)允許限制組文件中的行長度。這對于確保 NIS 組的行比長于 1024 字符。如果要強制這個限制,可以使用 25。注意:分割組可能不受所有工具的支持(甚至在 Shadow 工具集中)。您不應(yīng)該使用這個變量,除非真的需要。 |
| PASS_MAX_DAYS (number) | 一個密碼可以使用的最大天數(shù)。如果密碼比這舊,將會強迫更改密碼。如果不指定,就假定為 -1,這會禁用這個限制。 |
| PASS_MIN_DAYS (number) | 兩次更改密碼時間的最小間隔。將會拒絕任何早于此的更改密碼的嘗試。如果不指定,假定為 -1,將會禁用這個限制。 |
| PASS_WARN_AGE (number) | 密碼過期之前給出警告的天數(shù)。0 表示只有只在過期的當(dāng)天警告,負值表示不警告。如果沒有指定,不會給警告。 |
| SUB_GID_MIN (number), SUB_GID_MAX (number), SUB_GID_COUNT (number) | If /etc/subuid exists, the commands useradd and newusers (unless the user already have subordinate group IDs) allocate SUB_GID_COUNT unused group IDs from the range SUB_GID_MIN to SUB_GID_MAX for each new user.The default values for SUB_GID_MIN, SUB_GID_MAX, SUB_GID_COUNT are respectively 100000, 600100000 and 10000. |
| SUB_UID_MIN (number), SUB_UID_MAX (number), SUB_UID_COUNT (number) | If /etc/subuid exists, the commands useradd and newusers (unless the user already have subordinate user IDs) allocate SUB_UID_COUNT unused user IDs from the range SUB_UID_MIN to SUB_UID_MAX foreach new user.The default values for SUB_UID_MIN, SUB_UID_MAX, SUB_UID_COUNT are respectively 100000, 600100000 and 10000. |
| SYS_GID_MAX (number), SYS_GID_MIN (number) | useradd、groupadd 或 newusers 創(chuàng)建的系統(tǒng)組的組 ID 的范圍。 SYS_GID_MIN 和 SYS_GID_MAX 的默認值分別是 101 和 GID_MIN-1。 |
| UID_MAX (number), UID_MIN (number) | useradd 或 newusers 創(chuàng)建的普通用戶的用戶 ID 的范圍。UID_MIN 和 UID_MAX 的默認值分別是 1000 和 60000。 |
| UMASK (number) | 文件模式創(chuàng)建掩碼初始化為此值。如果沒有指定,掩碼初始化為 022。useradd 和 newusers 使用此掩碼設(shè)置它們創(chuàng)建的用戶主目錄的模式。也被 pam_umask 用作默認 umask 值。 |
| USERGROUPS_ENAB (boolean) | 如果設(shè)置為 yes,如果組中沒有成員了,userdel 將移除此用戶組,useradd 創(chuàng)建用戶時,也會創(chuàng)建一個同名的默認組。 |
usermod
用法: usermod [選項] 登錄名(注意一定是登錄名 不要用uid)
| 選項 | 作用 |
|---|---|
| -l, --login new_name 登錄名 | 修改登錄賬戶的登錄名 |
| -u, --uid UID | 用戶帳號的新 UID |
| -L --lock | 鎖定賬戶,使用戶無法登錄.其實就是在密碼前加個 !,使密碼失效. |
| -L | 同上.但是通過sshkey 無密碼登錄的方式,一樣可以登錄.看來還是密碼項設(shè)置為*好 |
| -U, --unlock | 解鎖用戶帳號 |
| -p, --password PASSWORD | 將加密過的密碼 (PASSWORD) 設(shè)為新密碼 |
| -s, --shell SHELL | 該用戶帳號的新登錄 shell |
| -o, --non-unique | 允許使用重復(fù)的(非唯一的) UID |
| -c, --comment 注釋 | GECOS 字段的新值 |
| -d, --home HOME_DIR | 用戶的新主目錄 |
| -e, --expiredate EXPIRE_DATE | 設(shè)定帳戶過期的日期為 EXPIRE_DATE |
| -f, --inactive INACTIVE | 過期 INACTIVE 天數(shù)后,設(shè)定密碼為失效狀態(tài) |
| -g, --gid GROUP | 強制使用 GROUP 為新主組 |
| -G, --groups GROUPS | 新的附加組列表 GROUPS,并從其它組中刪除此用戶 |
| -a, --append GROUP | 必須和-G 一起使用,將用戶追加至上邊 -G 中提到的附加組中,并不從其它組中刪除此用戶 |
chage命令參數(shù)
| 參數(shù) | 描述 |
|---|---|
| -d | 設(shè)置上次修改密碼的時間 |
| -E | 設(shè)置密碼過期的日期 |
| -I | 設(shè)置密碼過期到鎖定賬戶的天數(shù) |
| -m | 設(shè)置修改密碼之間最少要多少天 |
| -W | 設(shè)置密碼過期前多久開始出現(xiàn)提醒信息 |
chage命令的日期可以用下面兩種方式中的任意一種:
1.YYYY-MM-DD格式的日期
2.代表從1970年1月1日起到該日期天數(shù)的數(shù)值