使用newgrp命令改变用户的有效组

我们说过,每个用户可以属于一个初始组(用户是这个组的初始用户),也可以属于多个附加组(用户是这个组的附加用户)。既然用户可以属于这么多用户组,那么用户在创建文件后,默认生效的组身份是哪个呢?当然是初始用户组的组身份生效了,因为初始组是用户一旦登录就直接获得的组身份。也就是说,用户在创建文件后,文件的属组是用户的初始组,因为用户的有效组默认是初始组。既然用户属于多个用户组,那么能不能改变用户的有效组呢?使用命令 newgrp 就可以切换用户的有效组,命令格式如下:

[root@localhost ~]# newgrp 组名
#改变当前登录用户有效组,前提必须是用户已经在该组 

举个例子,我们已经有了普通用户 lamp,默认会建立 lamp 用户组,lamp 组是 lamp用户的初始组。我们再把 lamp用户加入 group1 组,那么 group1 组就是 lamp 用户的附加组。当 lamp 用户创建文件 test1 时,test1 文件的属组是 lamp 组,因为 lamp 组是 lamp 用户的有效组。通过 newgrp命令就可以把 lamp 用户的有效组变成 group1 组,当 lamp 用户创建文件 test2 时,就会发现 test2文件的属组就是 group1 组。

[root@localhost ~]# groupadd group1 
#添加组 group1 
[root@localhost ~]# gpasswd -a lamp group1 
Adding user lamp to group group1 
#把 lamp 用户加入 group1 组 
[root@localhost ~]# grep "lamp" /etc/group 
lamp:x:501: 
group1:x:503:lamp 
#lamp 用户既属于 lamp 组,也属于 group1 组 
[root@localhost ~]# su – lamp 
#切换成 lamp 身份,超级用户切换成普通用户不用密码 
[lamp@localhost ~]$ touch test1 
#创建文件 test1 
[lamp@localhost ~]$ ll test1 
-rw-rw-r-- 1 lamp lamp 0 114 05:43 test1 
#test1 文件的默认属组是 lamp 组 
[lamp@localhost ~]$ newgrp group1 
#切换 lamp 用户的有效组为 group1 组 
[lamp@localhost ~]$ touch test2 
#创建文件 test2 
[lamp@localhost ~]$ ll test2 
-rw-r--r-- 1 lamp group1 0 114 05:44 test2 
#test2 文件的默认属组是 group1 组 

通过这个例子明白有效组的作用了吗?其实就是当用户属于多个组时,在创建文件时哪个组身份生效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勿忘VS初心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值