Linux用戶和權限——管理用戶和用戶組的命令
摘要:本文主要學習了在Linux系統中管理用戶和用戶組的命令。
useradd命令
useradd命令可以用來創建新用戶。
基本語法
1 useradd [選項] 用戶名
選項說明
1 -u 用戶UID:手工指定用戶的UID,注意范圍不要小於500。 2 -d 目錄名:手工指定用戶的主目錄。主目錄必須寫絕對路徑,而且如果需要手工指定主目錄,則一定要注意權限。 3 -c 描述:手工指定/etc/passwd文件中各用戶信息中第五個字段的描述性內容,可隨意配置。 4 -g 目錄名:手工指定用戶的初始組。一般以和用戶名相同的組作為用戶的初始組,在創建用戶時會默認建立初始組。一旦手動指定,則系統將不會在創建此默認的初始組目錄。 5 -G 目錄名:指定用戶的附加組。我們把用戶加入其他組,一般都使用附加組。 6 -s 腳本文件名:手工指定用戶的登錄腳本,默認是/bin/bash。 7 -e 日期:指定用戶的失效日期,格式為“YYYY-MM-DD”。也就是/etc/shadow文件的第八個字段; 8 -o:允許創建的用戶的UID相同。 9 -m:建立用戶時強制建立用戶的家目錄。在建立系統用戶時,該選項是默認的。 10 -r:創建系統用戶,也就是UID在1~499之間,供系統程序使用的用戶。由於系統用戶主要用於運行系統所需服務的權限配置,因此系統用戶的創建默認不會創建主目錄。
使用舉例
1 [root@localhost ~]# useradd sam -G root 2 [root@localhost ~]# cat /etc/passwd 3 root:x:0:0:root:/root:/bin/bash 4 bin:x:1:1:bin:/bin:/sbin/nologin 5 ... 6 sam:x:1000:1000::/home/sam:/bin/bash 7 [root@localhost ~]# cat /etc/group 8 root:x:0:sam 9 bin:x:1: 10 ... 11 sam:x:1000: 12 [root@localhost ~]#
passwd命令
使用passwd命令設置密碼。
基本語法
1 passwd [選項] 用戶名
選項說明
1 -S:查詢用戶密碼的狀態,也就是/etc/shadow文件中此用戶密碼的內容,僅root用戶可用。 2 -l:暫時鎖定用戶,該選項會在/etc/shadow文件中指定用戶的加密密碼串前添加“!”,使密碼失效,僅root用戶可用。 3 -u:解鎖用戶,和-l選項相對應,僅root用戶使用。 4 -d:刪除已命名帳號的密碼,僅root用戶可用。 5 -k:保持身份驗證令牌不過期。 6 -f:強制執行操作。 7 -n 時間:設置該用戶修改密碼后,多長時間不能再次修改密碼,對應/etc/shadow文件中各行密碼的第四個字段。 8 -x 有效期:設置該用戶的密碼有效期,對應/etc/shadow文件中各行密碼的第五個字段。 9 -w 天數:設置用戶密碼過期前的警告天數,對應/etc/shadow文件中各行密碼的第六個字段。 10 -i 日期:設置用戶密碼失效日期,對應/etc/shadow文件中各行密碼的第七個字段。
使用舉例
1 [root@localhost ~]# passwd sam 2 更改用戶 sam 的密碼 。 3 新的 密碼: 4 無效的密碼: 密碼未通過字典檢查 - 過於簡單化/系統化 5 重新輸入新的 密碼: 6 passwd:所有的身份驗證令牌已經成功更新。 7 [root@localhost ~]#
usermod命令
usermod命令用於修改用戶信息。
基本語法
1 usermod [選項] 用戶名
選項說明
1 -c 說明信息:修改用戶的說明信息,即修改/etc/passwd文件目標用戶信息的第五個字段。 2 -d 目錄名:修改用戶的主目錄,即修改/etc/passwd文件中目標用戶信息的第六個字段,需要注意的是,主目錄必須寫絕對路徑。 3 -e 日期:修改用戶的失效曰期,格式為"YYYY-MM-DD",即修改/etc/shadow文件目標用戶密碼信息的第八個字段。 4 -g 組名:修改用戶的初始組,即修改/etc/passwd文件目標用戶信息的第四個字段(GID)。 5 -u 用戶UID:修改用戶的UID,即修改/etc/passwd文件目標用戶信息的第三個字段(UID)。 6 -G 組名:修改用戶的附加組,其實就是把用戶加入其他用戶組,即修改/etc/group文件。 7 -l 用戶名:修改用戶名稱。 8 -L:臨時鎖定用戶(Lock)。 9 -U:解鎖用戶(Unlock),和-L對應。 10 -s 腳本文件名:修改用戶的登錄腳本,默認是/bin/bash。
使用舉例
1 [root@localhost ~]# usermod -G root lisa 2 [root@localhost ~]# cat /etc/group 3 root:x:0:lisa 4 bin:x:1: 5 ... 6 [root@localhost ~]#
userdel命令
userdel命令功能很簡單,就是刪除用戶的相關數據。此命令只有root用戶才能使用。
基本語法
1 userdel [選項] 用戶名
選項說明
1 -r:表示在刪除用戶的同時刪除用戶的家目錄。
使用舉例
1 [root@localhost ~]# userdel lisa 2 [root@localhost ~]# cat /etc/passwd 3 root:x:0:0:root:/root:/bin/bash 4 bin:x:1:1:bin:/bin:/sbin/nologin 5 ... 6 [root@localhost ~]#
id命令
id命令可以查詢用戶的UID、GID和附加組的信息。
基本語法
1 id 用戶名
使用舉例
1 [root@localhost ~]# id root 2 uid=0(root) gid=0(root) 組=0(root) 3 [root@localhost ~]#
su命令
su命令是最簡單的用戶切換命令,通過該命令可以實現任何身份的切換,包括從普通用戶切換為root用戶、從root用戶切換為普通用戶以及普通用戶之間的切換。
普通用戶之間切換以及普通用戶切換至root用戶,都需要知曉對方的密碼,只有正確輸入密碼,才能實現切換;從root用戶切換至其他用戶,無需知曉對方密碼,直接可切換成功。
基本語法
1 su [選項] 用戶名
選項說明
1 -:當前用戶不僅切換為指定用戶的身份,同時所用的工作環境也切換為此用戶的環境(包括PATH變量、MAIL變量等),使用-選項可省略用戶名,默認會切換為root用戶。 2 -l:同-的使用類似,也就是在切換用戶身份的同時,完整切換工作環境,但后面需要添加欲切換的使用者賬號。 3 -p:表示切換為指定用戶的身份,但不改變當前的工作環境,即不使用切換用戶的配置文件。 4 -m:和-p一樣。 5 -c 命令:僅切換用戶執行一次命令,執行后自動切換回來,該選項后通常會帶有要執行的命令。
使用舉例
1 [root@localhost ~]# su - sam 2 上一次登錄:四 7月 11 08:43:12 CST 2019pts/0 上 3 [sam@localhost ~]$ su - 4 密碼: 5 上一次登錄:四 7月 11 09:06:21 CST 2019pts/2 上 6 [root@localhost ~]#
groupadd命令
groupadd命令用來添加用戶組。
基本語法
1 groupadd [選項] 組名
選項說明
1 -g 組ID:指定組ID。 2 -r:創建系統群組。
使用舉例
1 [root@localhost ~]# groupadd test 2 [root@localhost ~]# cat /etc/group 3 root:x:0: 4 bin:x:1: 5 ... 6 test:x:1001: 7 [root@localhost ~]#
gpasswd命令
可以使用gpasswd命令給群組設置一個群組管理員,代替root完成將用戶加入或移出群組的操作。
基本語法
1 gpasswd [選項] 組名
選項說明
1 :選項為空時,表示給群組設置密碼,僅root用戶可用。 2 -A user1,...:將群組的控制權交給user1,...等用戶管理,也就是說,設置user1,...等用戶為群組的管理員,僅root用戶可用。 3 -M user1,...:將user1,...加入到此群組中,僅root用戶可用。 4 -r:移除群組的密碼,僅root用戶可用。 5 -R:讓群組的密碼失效,僅root用戶可用。 6 -a 用戶名:將用戶加入到群組中。 7 -d 用戶名:將用戶從群組中移除。
使用舉例
1 [root@localhost ~]# gpasswd -M sam test 2 [root@localhost ~]# cat /etc/group 3 root:x:0: 4 bin:x:1: 5 ... 6 test:x:1001:sam 7 [root@localhost ~]#
groupmod命令
groupmod命令用於修改用戶組的相關信息。
基本語法
1 groupmod [選項] 組名
選項說明
1 -g 組ID:修改組ID。 2 -n 組名:修改組名。
使用舉例
1 [root@localhost ~]# groupmod -g 1002 test 2 [root@localhost ~]# cat /etc/group 3 root:x:0: 4 bin:x:1: 5 ... 6 test:x:1002: 7 [root@localhost ~]#
groupdel命令
groupdel命令用於刪除用戶組。
基本語法
1 groupdel 組名
使用舉例
1 [root@localhost ~]# groupdel test 2 [root@localhost ~]# cat /etc/group 3 root:x:0:sam 4 bin:x:1: 5 ... 6 [root@localhost ~]#