Linux 基礎/使用者管理
- 功能:新增、刪除使用者、設定密碼、修改
- 新增使用者:adduser(在 Ubuntu 下)、useradd

語法
useradd [options] username
選項
-u number:設定使用者 ID (UID)-c:註釋-g group:設定組成員身份-d /home/user:將 HOME 資料夾設定為 /home/user。-s /bin/bash:預設 shell(這裡使用者獲取 bash 作為預設 shell)-G group1, group2:用逗號隔開,如果使用者是其他組的成員-m -k /home/existing <username>:它會根據現有使用者的 home 資料夾建立 home 資料夾。- -m 開關表示建立 home 目錄,-k 指示我們想要從哪裡複製預設檔案(例如 /etc/skel -> home 資料夾的骨架資料夾)
所以命令看起來像這樣
useradd -c "test account" -u 1001 -g users -G info,sysadmin -d /home/test -s /bin/bash -m -k /etc/skel test
使用者資訊:getent
getent passwd <username>
如果我們想獲取有關 infotech 組的資訊
getent group infotech
使用者資料的位置:/etc/passwd
/etc/passwd 的內容類似
janos:x:1000:1000:Nagy János:/home/janos:/bin/bash
Passwd 檔案的條目用逗號隔開,欄位的解釋如下
- 使用者名稱。
- 加密密碼。
- 使用者 ID (uid)。
- 組 ID (gid)。
- 全名和其他資訊
- home 資料夾
- 選擇的 shell
/etc/shadow 檔案的內容類似
smithj:Ep6mckrOLChF.:10063:0:99999:7:::
與 passwd 檔案一樣,shadow 檔案中的每個欄位也用“:”冒號隔開,如下所示
- 使用者名稱,最多 8 個字元。區分大小寫,通常全部小寫。與 /etc/passwd 檔案中的使用者名稱直接匹配。
- 密碼,13 個字元加密。空白條目(例如 ::)表示登入不需要密碼(通常不是一個好主意),而“*”條目(例如 :*:) 表示帳戶已被停用。
- 密碼上次更改以來的天數(自 1970 年 1 月 1 日起)。
- 密碼可以更改的天數(0 表示可以隨時更改)
- 密碼必須更改的天數(99999 表示使用者可以將密碼保持不變很多年)
- 警告使用者密碼即將過期的天數(7 表示整整一週)
- 密碼過期後停用帳戶的天數
- 帳戶被停用以來的天數(自 1970 年 1 月 1 日起)
- 為將來可能使用保留的欄位
更改使用者規則:chage
我們可以透過更改它來規定使用者密碼何時過期。
例如,chage -l joska 的輸出將顯示其資料
Last password change : Feb 28, 2019 Password expires : never Password inactive : never Account expires : never Minimum number of days between pasword change : 0 Maximum number of days between pasword change : 99999 Number of days of warning before password expires : 7
我們希望 joska 使用者的密碼在 10 天后過期
chage -M 10 joska
我們希望 joska 的密碼何時過期?
chage -E "2019-12-31" joska
在非活動天數後鎖定
我們在 joska 的密碼在 10 天后變為非活動狀態。
chage -I 10 joska chage --inactive 10 joska
使用者密碼:passwd
更改自己的密碼
# passwd
使用超級使用者許可權,我們可以更改任何人的密碼
# passwd username
儲存加密密碼:/etc/shadow
生成密碼
# makepasswd
修改使用者資料:chfn
我們需要為此使用 finger 包。
例如
# chfn -f János janos # chfn --full-name "Nagy János" janos
開關
- -f, --full-name
- -o, --office -- 辦公室房間號
- -p, --office-phone - 辦公室電話號碼
- -h, --home-phone - 家庭電話號碼
刪除使用者:deluser、userdel
建議使用 /etc/deluser.conf 進行管理,我們應該檢視 deluser.conf(5) 手冊。
例如
deluser --remove-home deluser --remove-all-files deluser --backup deluser –backup-to
建立組:addgroup、groupadd
組資料的位置:/etc/group
/etc/group 檔案可以由 root 手動編輯(文字編輯器、mcedit、nano 等)。
每個使用者的名稱都會建立一個組(例如,在 kathy 使用者的情況下,會建立一個 kathy 組)。
新增到組
gpasswd -a kathy infotech
- 我們將 kathy 新增到 infotech 組
從組中刪除
gpasswd -d kathy infotech
- 我們將 kathy 從 infotech 組中刪除
“usermod” 命令
- 更改使用者帳戶。
將使用者 mary 新增到 infotech 組
usermod -a -G infotech mary
(對於 -a,組名稱將被附加,因此該使用者保留其他組。如果我們省略 -a,則該使用者分配的所有現有組都將被刪除)。
Usermod 命令的其他開關
- -u value user:它更改使用者 ID (UID)
- -g group user:它更改使用者組(例如 usermod -g infotech mari)
- -G group1,group2:它將使用者新增到給定組(但不附加)
usermod -G human,economy,sysadmin mary
- -L user:它鎖定使用者的訪問許可權/禁止使用者(因此您無法登入)
usermod -L -e 1970-01-01 mary (expiration date can be older than the current date) (--lock)
- -e value:過期日期(--expiredate)
- -U user:解鎖使用者的禁止狀態
- -d user:設定新的 home 資料夾(--home)
- -s user:設定 shell(--shell)
id 命令
請求有關使用者的資訊。
組成員
id id -nG
在 /etc/login.defs 目錄/檔案中,可以設定一些使用者屬性。例如,使用者電子郵件應該儲存在何處。
MAIL_DIR /var/mail
將失敗的登入記錄到 /var/log/faillog 檔案中
FAILLOG_ENAB yes
在登入失敗的情況下記錄未知使用者名稱
LOG_UNKFAIL_ENAB no
記錄成功的登入
LOG_OK_LOGINS no
控制密碼。預設情況下,密碼何時過期,使用者何時可以更改密碼,密碼的最小長度以及何時應發出警告
PASS_MAX_DAYS 99999 PASS_MIN_DAYS 0 PASS_MIN_LEN 5 PASS_WARN_AGE 7
useradd 情況下使用者 ID 的最小值和最大值
UID_MIN 1000 UID_MAX 60000
組 ID 的最小值和最大值
GID_MIN 1000 GID_MAX 60000
在失敗次數達到此數量後拒絕登入
LOGIN_RETRIES 5
超過不成功登入次數後的鎖定時間長度
LOGIN_TIMEOUT 60
/etc/default 資料夾包含它。
例如 /etc/default/useradd
# useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
- /etc/skel 資料夾包含基本主目錄的內容。