跳轉到內容

Linux 基礎/使用者管理

來自華夏公益教科書

使用者管理功能

[編輯 | 編輯原始碼]
  • 功能:新增、刪除使用者、設定密碼、修改
  • 新增使用者:adduser(在 Ubuntu 下)、useradd
Ubuntu 中的 useradd 互動式指南(adduser)

新增使用者

[編輯 | 編輯原始碼]

語法

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

/etc/passwd 的內容類似

janos:x:1000:1000:Nagy János:/home/janos:/bin/bash

Passwd 檔案的條目用逗號隔開,欄位的解釋如下

  1. 使用者名稱。
  2. 加密密碼。
  3. 使用者 ID (uid)。
  4. 組 ID (gid)。
  5. 全名和其他資訊
  6. home 資料夾
  7. 選擇的 shell

/etc/shadow 檔案

[編輯 | 編輯原始碼]

/etc/shadow 檔案的內容類似

smithj:Ep6mckrOLChF.:10063:0:99999:7:::

與 passwd 檔案一樣,shadow 檔案中的每個欄位也用“:”冒號隔開,如下所示

  1. 使用者名稱,最多 8 個字元。區分大小寫,通常全部小寫。與 /etc/passwd 檔案中的使用者名稱直接匹配。
  2. 密碼,13 個字元加密。空白條目(例如 ::)表示登入不需要密碼(通常不是一個好主意),而“*”條目(例如 :*:) 表示帳戶已被停用。
  3. 密碼上次更改以來的天數(自 1970 年 1 月 1 日起)。
  4. 密碼可以更改的天數(0 表示可以隨時更改)
  5. 密碼必須更改的天數(99999 表示使用者可以將密碼保持不變很多年)
  6. 警告使用者密碼即將過期的天數(7 表示整整一週)
  7. 密碼過期後停用帳戶的天數
  8. 帳戶被停用以來的天數(自 1970 年 1 月 1 日起)
  9. 為將來可能使用保留的欄位

更改使用者規則: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 資料夾包含基本主目錄的內容。
華夏公益教科書