Linux基礎--用戶與組

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

wKiom1bb7jvQZL91AABG060MOGo371.png

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來說是沒有用的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章