1. 創建組
增加oinstall組,指定組ID。 [root@localhost ~]# groupadd -g 1023 oinstall 增加oper系統組。 [root@localhost ~]# groupadd -r oper
2. 刪除組
[root@localhost ~]# groupdel oper
3. 修改組
修改oinstall組的組ID爲1024 [root@localhost ~]# groupmod -g 1024 oinstall 修改oracleinstall組的組名爲oinstall [root@localhost ~]# groupmod -n oinstall oracleinstall
4. 創建用戶
創建oracle用戶,用戶ID爲1010,主組爲oinstall,附加組爲dba和oper,家目錄爲/home/oracle,shell爲bash。 [root@localhost ~]# useradd -u 1010 -g oinstall -G dba,oper -m /home/oracle -s /usr/bin/bash oracle 增加系統用戶,系統用戶僅用於啓動系統進程,不能登錄交互式shell環境,不會爲其創建家目錄和郵箱。 [root@localhost ~]# useradd -r centos
在不指定這些選項時,useradd會按照默認選項創建用戶。
[root@localhost ~]# useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
這些默認選項實際是記錄在/etc/default/useradd文件中,另外/etc/login.defs也會影響useradd、userdel等命令的默認動作。
這些默認選項中需要注意的是SKEL=/etc/skel,這是幫助手冊中對它的說明。
骨架目錄,包含使用 useradd 創建用戶時,要複製到用戶主目錄中的文件和目錄。 這個選項只有在指定 -m (或 --create-home) 選項時纔有效。 如果此項沒有設置,骨架目錄使用 /etc/default/useradd 中的 SKEL 的變量或默認爲 /etc/skel。 如果可以,也複製 ACL 和擴展屬性。
用戶都記錄在/etc/passwd當中,以冒號分隔各字段。這裏的password只是佔位符,並非真正的用戶口令。
name:password:UID:GID:GECOS:directory:shell
用戶口令信息會加密存放在/etc/shadow當中,而且文件權限是000,但這個對root是無效的,也就是說這個文件只有root能打開。
[root@localhost ~]# ls -l /etc/shadow ---------- 1 root root 1080 Mar 3 20:35 /etc/shadow
口令加密成如下形式,$爲分隔符。第1段爲加密方式(6),第2段爲salt(Ma./WVpA),第3段爲加密後的結果。
$6$Ma./WVpA$DQACbc90xxddaTTTjcpMgHPs3b5z5mC2VVpZphO5jspk6ggW4B4nVQRIadrVRg2KoMPPzJ0vBS38qpOvFzY1F0
加密方式對應表
ID | Method --------------------------------------------------------- 1 | MD5 2a | Blowfish (not in mainline glibc; added in some | Linux distributions) 5 | SHA-256 (since glibc 2.7) 6 | SHA-512 (since glibc 2.7)
/etc/shadow文件中有幾個字段是對賬戶或口令的期限設定,具體說明參照man手冊。
[root@localhost ~]# man 5 shadow
lastday 爲口令最近一次修改時間
mindays 爲口令最短使用期限,這段時間內不得修改口令。
maxdays 爲口令最長使用期限,到期後用戶應該修改口令。
warndays 爲警告期,口令馬上就要過期,提前一段時間提醒用戶修改口令。
inactive 爲非活動期,口令到期後仍留有一段時間讓用戶可以登錄,但登錄之後只能修改口令,不能做其他任何事情。
過了非活動期用戶仍然沒有修改口令,用戶將被鎖定不能再登錄。
以上爲口令期限,還有一個字段是賬戶期限,二者是不同的概念。man手冊中的解釋是這樣的。
Note that an account expiration differs from a password expiration. In case of an acount expiration, the user shall not be allowed to login. In case of a password expiration, the user is not allowed to login using her password.
5. 修改賬戶或口令的期限設定
口令最短使用期限7天,最長使用期限30天,警告期3天,非活動期3天。 [root@localhost ~]# chage -m7 -M30 -W3 -I3 mageedu 修改口令最近一次修改時間爲2016-03-06 [root@localhost ~]# chage -d 2016-03-06 mageedu 設置賬戶過期時間爲2016-06-06 [root@localhost ~]# chage -E 2016-06-06 mageedu
6. 刪除用戶
刪除用戶,默認不會刪除用戶的家目錄和郵箱。 [root@localhost ~]# userdel mageedu 刪除用戶,同時刪除用戶的家目錄和郵箱。 [root@localhost ~]# userdel -r mageedu
7. 修改用戶
[root@localhost ~]# usermod -u 1020 -g oinstall -G dba,oper -m /home/oracle -s /usr/bin/bash oracle [root@localhost ~]# usermod -l rhel RedHatEnterpriseLinux#改用戶名 [root@localhost ~]# usermod -L test#鎖定用戶賬戶 [root@localhost ~]# usermod -U test#解鎖用戶賬戶
8. 用戶密碼管理
修改當前用戶自己的密碼 [root@localhost ~]# passwd 修改其他用戶的密碼 [root@localhost ~]# passwd mageedu
注意:
只有root用戶可以修改其他用戶的密碼,其他用戶只能修改自己的密碼。
root修改密碼時不需要輸入原始密碼,其他用戶修改密碼時需要先輸入原始密碼驗證身份。
root用戶可以使用任意字符串作爲密碼,而其他用戶密碼必須滿足一定的複雜度要求。
鎖定用戶的密碼 [root@localhost ~]# passwd -l mageedu 解鎖用戶的密碼 [root@localhost ~]# passwd -u mageedu 清除用戶的密碼 [root@localhost ~]# passwd -d mageedu
9. 組管理
給組設定密碼 [root@localhost ~]# gpasswd mageedu 刪除組密碼 [root@localhost ~]# gpasswd -r mageedu 給組增加用戶成員 [root@localhost ~]# gpasswd -a twoyang mageedu 從組中刪除用戶成員 [root@localhost ~]# gpasswd -a twoyang mageedu
10. 查看用戶ID信息
[root@localhost ~]# id uid=0(root) gid=0(root) groups=0(root) -u, --user print only the effective user ID -g, --group print only the effective group ID -G, --groups print all group IDs -n, --name print a name instead of a number, for -ugG
11. 切換用戶
切換至mageedu用戶身份,仍使用root用戶的環境變量。 [root@localhost ~]# su mageedu 切換至mageedu用戶身份,並加載mageedu用戶的環境變量。 [root@localhost ~]# su - mageedu 使用mageedu用戶身份執行命令"date +%H:%M:%S",並將結果返回。 [root@localhost ~]# su - mageedu -c "date +%H:%M:%S" 16:21:33
12. 登錄一個新組
[root@localhost ~]# id uid=0(root) gid=0(root) groups=0(root) [root@localhost ~]# newgrp mageedu [root@localhost ~]# id uid=0(root) gid=1000(mageedu) groups=0(root),1000(mageedu) 注意:如果登錄的新組設置有組密碼,就需要驗證密碼後才能登錄。當然對root來說是沒有用的。