文章目錄
Linux雲計算架構-用戶及用戶組管理
在生產環境中,大多數時候使用RHEL7或者其他的linux系統時,都可能是有多人同時操作。而設計linux系統的初衷即是爲了滿足多用戶同時工作的需求。
root用戶:擁有最高的系統所有權,能夠管理系統的各項功能,如添加/刪除用戶、啓動/關閉服務進程、開啓/禁用硬件設備等。
若直接使用root用戶,若執行了錯誤的命令,很可能直接使得整個系統崩潰。
故建議以普通用戶給的身份登錄系統:即擁有能滿足工作需求的最小權限的用戶。
對系統的每個用戶而言,都要爲其登記信息,其用戶ID即是UID,還要登記其所屬組ID即GID。
在RHEL7中,用戶身份有:
- 管理員:系統管理員,UID=0,常見的UID=0的用戶名爲root用戶,故常把root用戶稱作是系統管理員。
- 系統用戶:Linux系統爲了避免因某個服務程序出現漏洞而影響到整臺服務器,默認服務程序會有獨立的系統用戶負責運行,進而有效控制系統被破壞的範圍。UID=1~999【系統用戶用於運行服務,不會用來登錄系統】
- 普通用戶:由管理員創建的用於日常工作的用戶。UID>=1000。【UID的範圍並不代表UID在0<UID<1000的用戶就一定不是普通用戶,僅僅只是這樣分類比較好】
權限的分配可以按照用戶(每個人)分配,也可以按照所屬組(部門)進行分配。
每個用戶在創建的時候,默認會創建同名的基本用戶組,自成一組。若該用戶加入其他組,那麼其他組就是該用戶的拓展用戶組。一個用戶只有一個基本用戶組,但可以有多個拓展用戶組。
1. 用戶管理命令
1. 查看用戶信息
id 用戶名
2. 添加用戶
useradd
命令
參數 | 作用 |
---|---|
-d | 指定家目錄 |
-e | 賬戶到期時間,YYYY-MM-DD |
-M | 不創建用戶家目錄,常用於系統用戶 |
-u | uid |
-g | 指定一個已存在的基本用戶組,不指定默認創建同名基本用戶組 |
-G | 指定一個或多個拓展用戶組 |
-N | 不創建同名基本用戶組 |
-s | 指定shell解釋器 |
-p | 指定用戶密碼,默認無密碼,且賬戶密碼被鎖定 |
# 從以下命令可以看出,adduser也是可以添加用戶的,是useradd的軟連接,知道即可。
[root@master ~]# which useradd
/usr/sbin/useradd
[root@master ~]# which adduser
/usr/sbin/adduser
[root@master ~]# ll /usr/sbin/useradd
-rwxr-x---. 1 root root 118232 10月 31 2018 /usr/sbin/useradd
[root@master ~]# ll /usr/sbin/adduser
lrwxrwxrwx. 1 root root 7 6月 23 17:47 /usr/sbin/adduser -> useradd
3. 添加組
命令:groupadd [-g] group_name
不指定gid
,則gid
默認從10000開始,可以通過/etc/group
文件查看gid
4. 修改用戶信息
usermod
命令
命令useradd
中的參數都可以使用,作用都變爲重置爲或者變更
補充參數:
-L
:鎖定用戶,禁止登錄系統
-U
:解鎖用戶,允許其登錄系統
-d -m
:參數連用,變更家目錄並做數據遷移
-p
:設置用戶密碼並解鎖用戶密碼
將shell解釋器修改爲/bin/bash
後,用戶linux2已經可以登錄系統了。
可通過命令passwd -S 用戶名
查看用戶是否被鎖住。
5. 修改組信息
groupmod
命令
修改基本用戶組linux1的gid
groupmod -g 5555 linux1
6. 刪除用戶
userdel
命令
查看文件/etc/passwd
,有以下無用的用戶要刪除。
-r
:刪除用戶的同時,刪除該用戶家目錄和用戶文件。
7. 刪除組
groupdel
命令
若一個組是某一個用戶的基本用戶組,則不允許刪除該組。
groupdel 組名
8. 用戶密碼設置
passwd
命令
- 管理員用戶可以修改所有人的密碼,不需要舊密碼驗證。
- 普通用戶只能修改自己的密碼,需要舊密碼驗證。
參數 | 作用 |
---|---|
-S | 查看用戶是否被鎖定以及密碼採用的加密算法名稱 |
-l | 密碼鎖定 |
-u | 密碼解鎖 |
-d | 允許空密碼登錄 |
-e | 強制下次登陸要修改密碼 |
–stdin | 允許通過標準輸入修改用戶密碼【echo "123456" | passwd --stdin abong 】 |
9. 修改設置密碼的時間
[root@master ~]# chage
用法:chage [選項] 登錄
選項:
-d, --lastday 最近日期 將最近一次密碼設置時間設爲“最近日期”
-E, --expiredate 過期日期 將帳戶過期時間設爲“過期日期”
-h, --help 顯示此幫助信息並推出
-I, --inactive INACITVE 過期INACTIVE天數後,設定密碼爲失效狀態
-l, --list 顯示帳戶年齡信息
-m, --mindays 最小天數 將兩次改變密碼之間相距的最小天數設爲“最小天數”
-M, --maxdays 最大天數 將兩次改變密碼之間相距的最大天數設爲“最大天數”
-R, --root CHROOT_DIR chroot 到的目錄
-W, --warndays 警告天數 將過期警告天數設爲“警告天數”
# 設置0天后要修改密碼,即下次登錄就修改密碼
[root@master ~]# chage -d 0 abong
10. 其他命令
# id 用戶和組的信息
[root@master ~]# id abong
uid=1000(abong) gid=1000(abong) 組=1000(abong)
# whoami #查看當前有效用戶名
[root@master ~]# whoami
root
# who 顯示目前登入系統的用戶信息。
[root@master ~]# who
root :0 2020-07-02 18:56 (:0)
root pts/0 2020-07-02 18:57 (:0)
# users用於顯示當前登錄系統的所有用戶的用戶列表
[root@master ~]# users
root root
2. 常見用戶文件
-
/etc/passwd
:存放用戶信息【一行由7個部分,其中口令只是一個描述符,不是真實的密碼。】
用戶名:口令:uid:gid:註釋信息:家目錄:shell解釋器 -
/etc/shadow
:存放用戶的密碼【權限是000,但是root除外】【一行由9個部分組成,其中加密口令是指經過md5加密的口令】
用戶名:加密口令:最後一次修改時間:密碼修改的最小時間間隔(不能改):密碼修改的最大時間間隔(必須改):警告時間:不活動時間:失效時間:標誌 -
/etc/group
:存放用戶的組信息
組名:密碼:gid:用戶列表 -
/etc/default/useradd
:存放創建用戶的默認參數值,一般不修改該文件。# 創建用戶的默認配置文件 [root@master ~]# cat /etc/default/useradd # useradd defaults file GROUP=100 # users組ID爲100 HOME=/home # 默認在該目錄下創建家目錄 INACTIVE=-1 # 密碼是否會過期,-1則會過期 EXPIRE= # 密碼過期時間 SHELL=/bin/bash # 用戶默認的shell SKEL=/etc/skel # 模板目錄 CREATE_MAIL_SPOOL=yes # 是否創建郵箱文件 [root@master ~]# cat /etc/group | grep users users:x:100:
-
/etc/login.defs
:存放創建用戶的一些默認參數值,一般不修改該文件。
3. 批量創建用戶
-
編輯文本用戶文件,格式與
/etc/passwd
相同,後綴爲txt,如user.txt
-
以root用戶執行
newusers < user.txt
,執行之後可在/etc/passwd
中看到用戶信息
-
執行
pwunconv
命令。【/etc/passwd
中的口令通過pwconv
命令加密成爲/etc/shadow
中的加密口令,而pwunconv
可將/etc/shadow
中的加密口令解碼回寫入/etc/passwd
對應的密碼中】【即取消shadow password功能】
-
編輯密碼對照文件,格式:用戶名:密碼,後綴爲txt,如
passwd.txt
-
以root用戶執行
chpasswd < passwd.txt
,即將密碼通過chpasswd
命令寫入到文件/etc/passwd
中,可查看該文件進行檢查,此時的密碼未加密。
-
執行
pwconv
命令。【對/etc/passwd
文件中的密碼進行加密處理,並寫入到/etc/shadow
文件中,而/etc/passwd
中的口令再次變成變符號x】
-
從下圖可以看出,新添加的用戶user1和user2已經可以正常登錄使用了。
以上就是用戶以及用戶組管理的全部內容了,感謝各位的關注和點贊!!!