新聞中心

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),江州企業(yè)網(wǎng)站建設(shè),江州品牌網(wǎng)站建設(shè),網(wǎng)站定制,江州網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,江州網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
當(dāng)然是初始用戶組的組身份生效,因?yàn)槌跏冀M是用戶一旦登陸就獲得的組身份。也就是說(shuō),用戶的有效組默認(rèn)是初始組,因此所創(chuàng)建文件的屬組是用戶的初始組。那么,既然用戶屬于多個(gè)用戶組,能不能改變用戶的初始組呢?使用命令 newgrp 就可以。
newgrp 命令可以從用戶的附加組中選擇一個(gè)群組,作為用戶新的初始組。此命令的基本格式如下:
[root@localhost ~]# newgrp 組名
下面,我們通過(guò)一個(gè)實(shí)例,講解此命令的具體用法和功能:
- 首先,建立 3 個(gè)用戶組 group1、group2 和 group3,命令如下:
[root@localhost ~]# groupadd group1
[root@localhost ~]# groupadd group2
[root@localhost ~]# groupadd group3 - 創(chuàng)建一個(gè)用戶 user1,同時(shí)指定 user1 的初始組為 group1,附加組為 group2 和 group3,執(zhí)行命令如下:
[root@localhost ~]# useradd -g group1 -G group2,group3 user1
#由于指定了初始組,因此不會(huì)在創(chuàng)建 user1 默認(rèn)群組
[root@localhost ~]# more /etc/group | grep user1
group2:x:501:user1
group3:x:502:user1 - 對(duì)用戶 user1 設(shè)置密碼,執(zhí)行命令如下:
[root@localhost ~]# passwd user1
Changing password for user user1.
New password:
Retype new password:
passwd: all authentication tokens updated successfully. - 切換至 user1 用戶,通過(guò) newgrp 切換用戶組進(jìn)行下列操作,讀者可從中體會(huì)出 newgrp 命令的作用。
#切換至 user1 用戶
[root@localhost ~]# su - user1
[root@localhost ~]# whoami
user1
#使用 newgrp 命令一邊切換 user1 的初始組,一邊創(chuàng)建文件
[root@localhost ~]# mkdir user1_doc
[root@localhost ~]# newgrp group2
[root@localhost ~]# mkdir user2_doc
[root@localhost ~]# newgrp group3
[root@localhost ~]# mkdir user3_doc
#查看各文件的詳細(xì)信息
[root@localhost ~]# ll
total 12
drwxr-xr-x 2 user1 group1 4096 Oct 24 01:18 user1_doc
drwxr-xr-x 2 user1 group2 4096 Oct 24 01:18 user2_doc
drwxr-xr-x 2 user1 group3 4096 Oct 24 01:19 user3_doc
可以看到,通過(guò)使用 newgrp 命令切換用戶的初始組,所創(chuàng)建的文件各自屬于不同的群組,這就是 newgrp 所發(fā)揮的作用,即通過(guò)切換附加組成為新的初始組,從而讓用戶獲得使用各個(gè)附加組的權(quán)限。
newgrp命令的底層實(shí)現(xiàn)
其實(shí),newgrp 命令每一次切換用戶的初始組,該用戶都會(huì)以另外一個(gè) shell(新進(jìn)程,也可以說(shuō)是子進(jìn)程)登陸,只不過(guò)在新 shell 上登陸的該用戶,其初始組改變了而已。
以上實(shí)例中,通過(guò)添加 shell 內(nèi)置命令 "echo $$" 就可以發(fā)現(xiàn),每次使用 newgrp 命令,都會(huì)切換到一個(gè)新的進(jìn)程。
在本節(jié)實(shí)例中,使用 newgrp 命令切換用戶初始組的整個(gè)過(guò)程,如圖 1 所示:
圖 1 newgrp 切換初始組程序運(yùn)行過(guò)程圖
當(dāng)然,如果你想回到原本的環(huán)境,需要通過(guò) exit 命令不斷回退到當(dāng)前進(jìn)程的父進(jìn)程,最終才能回到初始組為 group1 時(shí)的 user1 運(yùn)行的 shell 中。
本文名稱(chēng):Linuxnewgrp命令用法詳解:切換用戶的有效組
網(wǎng)站地址:http://www.dlmjj.cn/article/djcpocd.html


咨詢(xún)
建站咨詢(xún)
