先查看一下 /etc/group 文件:
[root@localhost /]# cat /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:
disk:x:6:root
lp:x:7:daemon,lp
mem:x:8:
kmem:x:9:
wheel:x:10:root
...
這個文件的每一行代表一個用戶組,以冒號分隔各個字段。共有4個字段,分別是:
- ==用戶組名稱==
- ==用戶組密碼==:通常不需要設(shè)置,這個設(shè)置通常是給“用戶組管理員”是用的。
- ==GID==:用戶組 ID
- ==此用戶組支持的賬號名稱==:一個賬號可以加入多個用戶組,如果某個用戶想要加入某個用戶組,只需將該用戶的用戶名添加進(jìn)這個字段中。
初始用戶組
在 /etc/passwd 中用戶對應(yīng)的那一行的第4個字段(GID),就是初始用戶組。當(dāng)用戶登錄系統(tǒng),立刻就擁有這個初始用戶組的相關(guān)權(quán)限。
[root@localhost /]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
...
有效用戶組
有效用戶組表示用戶此時(shí)此刻所在的用戶組是什么。在切換有效用戶組之前,有效用戶組就是初始用戶組。
想要知道用戶自己當(dāng)前的有效用戶組和支持的用戶組(在 /etc/group 文件中第四字段包含此用戶的用戶組),使用 groups 即可。
[root@localhost /]# groups
root bin daemon sys adm disk wheel
在這個輸出的信息中,第一個輸出的用戶組就是當(dāng)前的有效用戶組了(但是有些系統(tǒng)并不這么做)。
如果我以 touch 去創(chuàng)建一個新文件,那么這個文件的所有者為 root,而且用戶組是 root(有效用戶組)。
切換有效用戶組:newgrp
使用 newgrp 命令可以切換有效用戶組,注意只能切換當(dāng)前賬號支持的用戶組。
假設(shè)當(dāng)前用戶支持 “test” 和 “foo” 這兩個用戶組。那么 newgrp test 和 newgrp foo 是有效的。其他的都是無效的。
這個轉(zhuǎn)換的背后原理是創(chuàng)建一個新的 shell,如果要恢復(fù)到前一個用戶組需要用 exit 或 Ctrl+D 來注銷當(dāng)前的 shell 。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。