UBUNTU用戶及用戶組管理
創建組:
$sudo addgroup ccache
創建用戶:
$sudo useradd ccache -g ccache -M
創新wfz用戶並創建HOME目錄,指定用戶組為ccache
$sudo useradd wfz -g ccache -m
增加已存在用戶到指定組
$sudo adduser $USER ccache
$sudo adduser dbh ccache
$sudo adduser paul ccache
$sudo adduser wfz ccache
顯示用戶ID及組信息:
~$ id
uid=1001(dbh) gid=1001(dbh) groups=115(admin),1001(dbh)
$ cat /etc/group
ccache:x:1002:dbh,paul,wfz
1. 用戶和用戶組的管理:
Linux的多用戶概念是指多個用戶同時可以使用這個系統。
(1)用戶帳號文件——passwd
Passwd是一個文本文件(每一行標識1個用戶),定義了系統的用戶帳號,該文件位於“/etc”目錄下。文件中包含了一個系統帳戶列表,存放了每個賬戶一些有用的信息,如用戶ID,組ID,主目錄,shell等等(用“:”分隔開來)。只定義了用戶帳號,而不保存口令(用“x”表示,如果沒有 sun::則表示沒有密碼)。真正的密碼存放在Shadow文件中,普通用戶根本不能讀,加密後的密文無法讀到就可以提高用戶帳號的安全性。
例如:
[root@sun root]# head /etc/passwd
root:x:0:0:root:/root:/bin/bash 表示有7個字段:登錄名:有無口令:用戶ID:組ID:賬戶備注信息:用戶Home目錄:登錄時用戶shell的名稱(超級用戶有權限修改)
(2)用戶口令文件——shadow
每行定義了一個用戶信息,行中各字段用:分開,為進一步提高安全性,口令文件存放用戶已經加密的口令:*,特殊符號
[root@sun root]# head /etc/shadow
登錄名:加密的口令(用*或其他特殊字符表示):上次更改口令距離1970.1.1的天數:口令更改後不可更改的天數:口令更改後必須再更改的天數(有效期):口令失效前警告用戶的天數:口令失效後距帳號被查封的天數:帳號被封時距1970.1.1的天數:保留未用。
(3)用戶組帳號文件——group
用戶組:邏輯的組織用戶帳號的集合的方式,用戶允許在其組內共享文件,系統每個文件都有一個用戶和附屬的用戶組。使用“ls -l”命令可以查看每個文件的屬性和組。
[root@sun root]# head /etc/group
root:x:0:root,tom,mary (組名:組加密口令:GID:組成員列表(用,隔開的每個組用戶名))
(4)用戶組口令文件——gshadow
用於定義用戶組口令,用戶組管理員信息。該文件只有超級用戶root才可以讀取
每行記錄信息:
[root@sun root]# head /etc/gshadow
用戶組:用戶組加密口令:組管理員帳號(管理員有權進行增刪帳號):組成員列表
2. 用戶和用戶組賬戶維護的命令:
(1)增加用戶賬戶:useradd 用戶名
useradd –g 組名 用戶名 指定該用戶所使用的私有組名,默認是與用戶帳號同名的私有組。
useradd –D [-g group][-b base][-s shell][-f inactive][-e expire] 用於顯示和設置useradd該命令所使用的默認值。
例如:#useradd sun //建立用戶帳號
#tail -l /etc/passwd //查詢passwd中添加的用戶賬戶的信息
#tail –l /etc/shadow
#ls /home //查看所建立帳號的主目錄
(2)修改用戶帳號屬性:usermod [-LU][-c ][-d ][-e ][-f ][-g ][-G][-l][-s][-u][用戶帳號]
(3)刪除用戶帳號:userdel [-r][用戶帳號] //如果不加參數則只刪除用戶帳號,不刪除文件,否則兩者都刪除。
userdel [-r][用戶帳號] //-r用來刪除帳號登入目錄和目錄中所有文件
舉例:#grep sun /etc/passwd //查詢用戶帳號sun是否存在
#userdel sun //刪除用戶帳號sun
#grep sun /etc/passwd //再次查詢用戶帳號sun是否存在
#ll –d /home //查詢用戶sun主目錄是否存在
#userdel –r sun //刪除用戶的同時,刪除其工作主目錄
(4) 增加用戶組帳號:groupadd [-r][組帳號]
【注意】帳號ID唯一,數值不可為負,預設最小值不得小於500,且每增加一個,組帳號ID逐次自增1。其中-r參數是用來建立系統帳號的。0~499是給系統帳號准備的。
舉例:#groupadd magicSun //建立組賬戶magicSun
#grep magicSun /etc/group //查詢group文件中magicSun組賬戶是否建立
#groupadd –r sysWang //建立系統組賬戶sysWang
#grep sysWang /etc/group //查詢group文件中sysWang系統組賬戶是否建立
(5)修改組帳號:groupmod [-g ][-n][群組名稱]
其中-o表示重復使用群組識別碼
(6)刪除組帳號:groupdel [群組名稱]
【注意】必須先刪除組中的用戶才能刪除該組
(7)口令維護:passwd [-s][-l][-u][-d][用戶名] 超級用戶可以為每一位新增的用戶設置口令,普通用戶只能用不帶參數的passwd命令來修改自己的口令。其中參數-s表示用於查詢指定用戶帳號的狀態,-l用戶鎖定帳號的口令,-u解鎖帳號口令,-d刪除指定帳號的口令。
(8)組用戶成員維護:將一個賬戶添加到組、或將一個賬戶從組中刪除、將一個賬戶設為組管理員。
添加用戶到組:gpasswd –a 用戶帳號名 組帳號名
從組中刪除用戶:gpasswd –d用戶帳號名 組帳號名
設置用戶為組管理員:gpasswd –A 組管理員用戶列表 用戶組
(9)用戶和組的狀態命令:
id [選項] [用戶名稱] 用於顯示用戶當前UID,gid以及所屬群組的組列表
[選項]參數有:
-g :顯示用戶所屬群組的id
-G:顯示用戶所屬附加群組的id
-n:顯示用戶所屬群組或附加群組的名稱
-r:顯示實際ID
-u:顯示用戶ID
whoami 用於顯示登錄者自身的名稱(=id -un)
su [-flmp] [-][-c ][-s][用戶帳號] //用來將當前用戶轉換為其他用戶身份,暫時變更自己的登錄身份,用其他人的身份來登錄系統。前提是必須知道對方的口令。其中參數-c表示執行完指定的指令後恢復原來的身份。-f適用於csh和tsch,使shell不用去讀取啟動文件。-表示改變身份時也同時變更工作目錄,以及 HOME,SHELL,USER,LOGNAME,此外也會變更PATH環境變量。-m,-p 變更身份時不變更環境變量。-s 指定要執行的shell。若不指定要變更的用戶賬戶,那麼預設為root超級用戶。
groups [用戶名稱] 用於顯示指定用戶所屬的組,若未指定用戶則顯示當前用戶所屬組