root:相似於Windows系統中的Administrator用戶,非執行管理任務時不建議使用root
用戶登陸系統
普通用戶:通常只在用戶本身的宿主目錄中有徹底權限
程序用戶:用於維持系統或某個程序的正常運行,通常不容許登陸到系統。例如:bin
、daemon、ftp、mail等
複製代碼
用戶帳號信息保存於/etc/passwd
中,每一行對應一個用戶的帳號記錄,每行有7個字段,以冒號做爲分隔符 用戶名:密碼:uid:gid:用戶全名:宿主目錄:登陸shell信息
linux
# /etc/passwd的字段:
user@computer: $ head -n 1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
複製代碼
uid: 用戶標識號, root的uid固定爲0
gid: 組標識號,root的gid固定爲0
程序用戶的uid、gid: 1~999
普通用戶/組使用的uid、gid:1000~60000
複製代碼
通常/etc/passwd的第二個字段會以x佔位符的形式出現,真正的密碼存儲於/etc/shadow
中shell
/etc/shadow每行對應一個密碼記錄,每行有九個字段,以冒號做爲分隔符
字段1:用戶賬號的名稱
字段2:加密的密碼字串信息
字段3:上次修改密碼的時間(距離1970.1.1)
字段4:密碼的最短有效天數,默認值爲0
字段5:密碼的最長有效天數,默認值爲99999
字段6:提早多少天警告用戶口令將過時,默認值爲7
字段7:在密碼過時以後多少天禁用此用戶
字段8:賬號失效時間,默認值爲空
字段9:保留字段(未使用)
複製代碼
與用戶賬號文件相相似bash
/etc/group:保存組賬號基本信息
/etc/gshadow:保存組賬號的密碼信息
group文件內的最後一個字段中列出屬於該組的用戶成員(通常不包括基本組對應的用戶賬號),多個成員之間以逗號分隔
複製代碼
當建立一個新的用戶帳戶時,若是沒有指定該用戶屬於哪個組羣,那麼Linux就會建立一個和該用戶同名的組羣,這個組羣就是私有組羣,在這個私有組羣中只包含這個用戶 每一個用戶有且僅有一個基本組ui
能夠包含多個用戶帳戶, 一個用戶帳戶只能屬於一個基本組, 能夠屬於多個附加組 屬於本組補充組成員的用戶列在/etc/group中加密
若是把一個用戶加入到root組羣,那麼這個用戶就能夠瀏覽root用戶主目錄的文件;
若是root用戶把把某個文件的讀寫執行權限放開,root組羣的全部用戶就能夠修改次文件;
若是是可執行的文件,root組羣的用戶也能夠執行。
複製代碼
# useradd 添加用戶
useradd [options] username
經常使用選項:
-u 指定用戶ID
-G 指定用戶的附屬組(補充組)
-s 指定用戶登入後所使用的shell
-d 設置登陸時使用的主目錄
-M 不創建用戶主目錄
-g 主要組羣名(該組羣必須是現有存在的組羣)
user@computer: ~$ useradd -u 4000 susa # 建立一個名爲susa的用戶,用戶id爲4000
user@computer: ~$ useradd -s /bin/ksh user1 # 建立用戶user1,並設置該用戶的shell類型爲/bin/ksh
user@computer: ~$ useradd -g root manager # 建立用戶manager, 並指定該用戶是屬於組羣root的成員
user@computer: ~$ useradd –d /home/user0 user0 # 建立用戶user0,並設置該用戶主目錄爲/home/user0
user@computer: ~$ useradd –M –s /sbin/nologin user3 # 新增user3用戶,不爲用戶創建並初始化宿主目錄,用戶不容許登錄到系統的shell
複製代碼
# passwd 配置用戶密碼
passwd [options] username
-l 鎖定用戶密碼
-u 解鎖用戶密碼
-d 刪除用戶密碼
user@computer: ~$ passwd susa # 修改susa的密碼
更改用戶susa的密碼:
新的密碼:
從新輸入新的密碼:
passwd:全部的身份驗證令牌已經更新
user@computer: ~$ passwd -l susa # 鎖定susa的密碼,用戶user鎖住後不能登陸到系統,可是可使用su命令從其餘用戶切換
user@computer: ~$ passwd -u susa # 解鎖susa的密碼
user@computer: ~$ passwd -d susa # 刪除susa的密碼
複製代碼
# usermod 編輯用戶帳號屬性
usermod [選項] 用戶名
經常使用選項:-u、-s
-s 修改用戶登入後所使用的shell
-u 修改用戶ID
複製代碼
# userdel 刪除用戶賬號:
userdel [-r] 用戶名
-r 同時刪除用戶及主目錄
複製代碼
# change 改變用戶密碼期限:
chage [選項] 用戶賬號名
user@computer: ~$ chage –M 45 username # 設置密碼在45天后過時
經過date命令計算將來的日期
date –d "+45 days" # 45天后過時
chage –E YYYY-MM-DD username # 密碼過時的時間
chage –d 0 username # 強制用戶在再次登陸時更新密碼
複製代碼
# groupadd 添加組帳號:
groupadd [-g] 組賬號名
複製代碼
# groupmod 組成員管理:
groupmod [選項] 組賬號名
複製代碼
# groupdel 刪除組賬號:
groupdel 組賬號名
複製代碼
# id 查詢用戶身份標識
id [username]
user@computer: ~$ id root # 查詢root的uid,gid和組成員
uid=0(root) gid=0(root) groups=0(root)
若不指定用戶名,則顯示當前用戶的帳號信息
複製代碼
# groups 顯示指定用戶帳戶的組羣成員身份
groups [用戶名]
複製代碼
# su 切換到其餘帳戶進行登陸
su [options] [user]
複製代碼