新聞中心

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


咨詢
建站咨詢
