您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“如何理解Linux用戶系統(tǒng)中的群組與群組管理員”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
關(guān)于群組: 有效與初始群組、groups, newgrp
代碼如下:
# /etc/group
這個(gè)檔案就是在記錄 GID 與群組名稱的對(duì)應(yīng)了~我的 /etc/group 內(nèi)容有點(diǎn)像這樣:
代碼如下:
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
也是以冒號(hào)‘:’作為欄位的分隔符號(hào),共分為四欄,每一欄位的意義是:
1. 群組名稱:就是群組名稱啦!
2. 群組密碼:通常不需要設(shè)定,因?yàn)槲覀兒苌偈褂玫饺航M登入! 不過,同樣的,密碼也是被紀(jì)錄在 /etc/gshadow 當(dāng)中啰!
3. GID:就是群組的 ID 啊~
4. 支援的帳號(hào)名稱:加入這個(gè)群組里面的所有的帳號(hào), 我們知道,一個(gè)使用者是可以加入多個(gè)群組的。舉例來說,如果我想要讓 dmtsai 也加入 root 這個(gè)群組,那么在第一行的最后面加上‘,dmtsai’,注意不要有空格, 使成為‘ root:x:0:root,dmtsai’就可以啰~
比較重要的特色在于第四欄啦,因?yàn)槊總€(gè)使用者都可以擁有多個(gè)支援的群組, 這就好比在學(xué)校念書的時(shí)候,我們可以加入多個(gè)社團(tuán)一樣! ^_^。 不過這里您或許會(huì)覺得奇怪的,那就是:‘假如我同時(shí)加入多個(gè)群組, 那么我在作業(yè)的時(shí)候,到底是以那個(gè)群組為準(zhǔn)?’底下我們就來談一談這個(gè)‘有效群組’的概念。
# 有效群組(effective group)與初始群組(initial group)
還記得每個(gè)使用者在他的 /etc/passwd 里面的第四欄有所謂的 GID 吧?那個(gè) GID 就是所謂的‘初始群組 ( initial group ) ’了!也就是說,當(dāng)使用者一登入系統(tǒng),立刻就擁有這個(gè)群組的相關(guān)權(quán)限的意思。 舉例來說,我們上面提到 dmtsai 這個(gè)使用者的 /etc/passwd 與 /etc/group 還有 /etc/gshadow 相關(guān)的內(nèi)容如下:
代碼如下:
[root@linux ~]# grep dmtsai /etc/passwd /etc/group /etc/gshadow
/etc/passwd:dmtsai:x:501:501::/home/dmtsai:/bin/bash
/etc/group:users:x:100:dmtsai
/etc/group:dmtsai:x:501:
/etc/gshadow:users:::dmtsai
/etc/gshadow:dmtsai:!::
仔細(xì)看到上面這個(gè)表格,在 /etc/passwd 里面,dmtsai 這個(gè)使用者所屬的群組為 GID=501 , 也就是 /etc/group 里頭 dmtsai 那個(gè)群組啦~因?yàn)檫@是 initial group ,所以, 使用者一登入就會(huì)主動(dòng)取得,不需要在 /etc/group 的第四個(gè)欄位寫入該帳號(hào)的!
但是非 initial group 的其他群組可就不同了。舉上面這個(gè)例子來說,我將 dmtsai 加入 users 這個(gè)群組當(dāng)中,由于 users 這個(gè)群組并非是 dmtsai 的初始群組,因此, 我必須要在 /etc/group 這個(gè)檔案中,找到 users 那一行,并且將 dmtsai 這個(gè)帳號(hào)加入第四欄, 這樣 dmtsai 才能夠支援 users 這個(gè)群組啊。
那么在這個(gè)例子當(dāng)中,因?yàn)槲业?dmtsai 這個(gè)帳號(hào)同時(shí)支援 dmtsai 與 users 這兩個(gè)群組, 因此,在讀取/寫入/執(zhí)行檔案時(shí),針對(duì)群組部分,只要是 users 與 dmtsai 這兩個(gè)群組擁有的功能, 我 dmtsai 這個(gè)使用者都能夠擁有喔!這樣瞭呼?不過,這是針對(duì)已經(jīng)存在的檔案而言, 如果今天我要建立一個(gè)新的檔案或者是新的目錄,請(qǐng)問一下,新檔案的群組是 dmtsai 還是 users ? 呵呵!這就得要檢查一下當(dāng)時(shí)的有效群組了 (effective group)。
如果我以 dmtsai 這個(gè)使用者的身份登入后,該如何知道我所有支援的群組呢? 很簡(jiǎn)單啊,直接輸入 groups 就可以了!注意喔,是 groups 有加 s 呢!結(jié)果像這樣:
代碼如下:
[dmtsai@linux ~]$ groups
dmtsai users
在這個(gè)輸出的訊息中,我知道我同時(shí)屬于 dmtsai 及 users 這個(gè)兩個(gè)群組,而且, 第一個(gè)輸出的群組即為有效群組 (effective group) 了。 也就是說,我的有效群組為 dmtsai 啦~此時(shí),如果我以 touch 去建立一個(gè)新檔,例如: touch test ,那么這個(gè)檔案的擁有者為 dmtsai ,而且群組也是 dmtsai 的啦。 這樣是否可以瞭解什么是有效群組了?
那么如何變更有效群組呢?這個(gè)有兩個(gè)方法,不論是那個(gè)方法,都是以 newgrp 達(dá)成的! 以上面這個(gè)例子來說,因?yàn)槲业?dmtsai 使用者同時(shí)擁有 dmtsai 與 users 兩個(gè)群組,因此, dmtsai 當(dāng)然可以隨時(shí)切換 dmtsai/users 成為有效群組啰。所以,我可以下達(dá):
代碼如下:
[dmtsai@linux ~]$ newgrp users
[dmtsai@linux ~]$ groups
users dmtsai
此時(shí),我的有效群組就成為 users 了。當(dāng)然,要能夠順利切換有效群組的話,還需要 /etc/gshadow 的輔助才行~這個(gè)等一下我們會(huì)說明的。好了,那么如果你開始在 /home/dmtsai 這個(gè)家目錄底下嘗試建立一個(gè)檔案,例如‘ touch test2 ’好了,會(huì)發(fā)生什么狀態(tài)呢? 呵呵!那個(gè)檔案的群組竟然變成 users 了!這樣更清楚有效群組的意義了吧?!
我們額外的來討論一下 newgrp 這個(gè)指令,這個(gè)指令可以變更目前使用者的有效群組, 而且是另外以一個(gè) shell 來提供登入的喔,所以,以上面的例子來說, dmtsai 這個(gè)使用者目前是以另一個(gè) shell 登入的,而且新的 shell 給予 dmtsai 有效 GID 為 users 就是了。當(dāng)直接執(zhí)行‘ newgrp groupname ’時(shí),使用者的有效群組會(huì)成為 groupname , 此時(shí)雖然使用者的環(huán)境設(shè)定(例如環(huán)境變數(shù)等等其他資料)不會(huì)有影響,但是使用者的‘權(quán)限’將會(huì)重新被計(jì)算。 舉例來說, dmtsai 此時(shí)建立的新檔案群組是 users 了~
鳥哥的這個(gè)例子當(dāng)中,要注意的是, dmtsai 這個(gè)使用者本來就屬于 users 與 dmtsai 這兩個(gè)群組, 所以他可以直接使用 newgrp 來切換有效群組,而要離開新的有效群組時(shí),輸入‘ exit ’即可。 假設(shè)我的 Linux 系統(tǒng)當(dāng)中還有另一個(gè)群組,名稱為 vbird,那么 dmtsai 是否可以登入 vbird 這個(gè)群組? 在某些前提下是可以的:
* vbird 這個(gè)群組在 /etc/gshadow 的密碼欄為合法的(不具有 ! 開頭!);
* dmtsai 必須讓 root 或群組管理員 (group administrator) 加入到 vbird 群組中。
這兩個(gè)大前提缺一不可喔!好了,假設(shè)我已經(jīng)使用 gpasswd 建立了 vbird 這個(gè)群組的密碼, 而 dmtsai 也被加入群組成員當(dāng)中了,那么當(dāng) dmtsai 輸入 ‘newgrp vbird’時(shí), 嘿嘿! dmtsai 這個(gè)使用者的有效群組就能夠變成 vbird 啰~
# /etc/gshadow
剛剛講了很多關(guān)于‘有效群組’的概念,另外,也提到 newgrp 這個(gè)指令的用法, 但是,如果 /etc/gshadow 這個(gè)設(shè)定沒有搞懂得話,那么 newgrp 是無法動(dòng)作的呢! 我的 /etc/gshadow 的內(nèi)容有點(diǎn)像這樣:
代碼如下:
root:::root
bin:::root,bin,daemon
daemon:::root,bin,daemon
sys:::root,bin,adm
同樣還是使用冒號(hào)‘:’來作為欄位的分隔字元,而且你會(huì)發(fā)現(xiàn),這個(gè)檔案幾乎與 /etc/group 一模一樣?。∈沁@樣沒錯(cuò)~不過,要注意的大概就是第二個(gè)欄位吧~第二個(gè)欄位是密碼欄, 如果密碼欄上面是‘!’時(shí),表示該群組不能使用密碼來登入呢! 至于第四個(gè)欄位也就是支援的帳號(hào)名稱啰~
1. 群組名稱
2. 密碼欄,同樣的,開頭為 ! 表示無法登入;
3. 群組管理員的帳號(hào) (相關(guān)資訊在后續(xù)介紹)
4. 該群組的所屬帳號(hào) (與 /etc/group 內(nèi)容相同!)
不過,就以系統(tǒng)的操作來說,事實(shí)上,這個(gè) /etc/gshadow 的密碼提供,最大的功能是在于‘ 讓那些不在群組中的成員,臨時(shí)加入該群組用的。 ’ 實(shí)際上使用的情況是很少的~而如果真的要操作這樣的環(huán)境,那就得要熟悉 newgrp 的用法啰! 而且還要提供某個(gè)群組的密碼出來,真是不好管理。所以,若真的想要讓某個(gè)使用者利用該群組的功能時(shí), 還是直接將對(duì)方加入群組的支援就好了!省得麻煩~
Linux群組管理員
為什么需要群組管理員
我們假設(shè)一個(gè)場(chǎng)景,一個(gè)公司里有好多部門,不同員工需要加入到不同的群組。如果其中一個(gè)部門增加員工,就需要通知管理員,將其加入到對(duì)應(yīng)的群組。如果每個(gè)部門都要增加員工,那管理員可能每天都會(huì)疲于奔命處理各個(gè)請(qǐng)求。
這時(shí)我們可以針對(duì)每個(gè)群組設(shè)置組長(zhǎng),并允許組長(zhǎng)添加刪除組成員,這樣不僅可以提高效率,還減少了管理員的工作。
如何指派群組管理
語法:
代碼如下:
gpasswd -A USERNAME GROUPNAME
效果:
在添加群組管理時(shí),可以指定多個(gè)用戶,多個(gè)用戶之間需要使用英文逗號(hào)隔開。
如何刪除群組管理
語法:
代碼如下:
gpasswd -A "" GROUPNAME
效果:
gpasswd沒有特定的參數(shù)用于刪除群組管理,我們指定空字符串即可。如果組內(nèi)有多個(gè)管理員,指定保留用戶即可。
群組管理添加成員
語法:
代碼如下:
gpasswd -a USERNAME GROUPNAME
效果:
群組管理刪除成員
語法:
代碼如下:
gpasswd -d USERNAME GROUPNAME
效果:
“如何理解Linux用戶系統(tǒng)中的群組與群組管理員”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。