linux – 对现有会话不尊重的组成员身份的更改
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 对现有会话不尊重的组成员身份的更改,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2585字,纯文字阅读大概需要4分钟。
内容图文
![linux – 对现有会话不尊重的组成员身份的更改](/upload/InfoBanner/zyjiaocheng/966/56571fafe7914480b43b7a7d2ad0a3fd.jpg)
我遇到了Linux权限和群组成员身份的奇怪行为让我摸不着头脑.情况如下:
>我有两个用户:alice和bob
alice@KAL:~$id alice
uid=3000(alice) gid=3000(alice) groups=3000(alice)
alice@KAL:~$id bob
uid=3001(bob) gid=3001(bob) groups=3001(bob)
>在alice的主目录中,有一个子目录,我想给bob写入权限.
(as alice)
alice@KAL:~$mkdir shared
alice@KAL:~$chmod g+w shared
alice@KAL:~$ls -l
total 4
drwxrwxr-x 2 alice alice 4096 2012-05-15 23:56 shared
>我将group alice(gid = 3000)添加为bob的二级组之一
(as root)
root@KAL:~# id bob
uid=3001(bob) gid=3001(bob) groups=3001(bob)
root@KAL:~# usermod -G 3000 bob
root@KAL:~# id bob
uid=3001(bob) gid=3001(bob) groups=3001(bob),3000(alice)
>我打开一个新的终端,su作为bob,并在alice的主目录中测试我的权限.
(initially as kp, su'ing as bob)
kp@KAL:~$sudo su bob
bob@KAL:/home/kp$cd /home/alice
bob@KAL:/home/alice$ls -l
total 4
drwxrwxr-x 2 alice alice 4096 2012-05-15 23:56 shared
bob@KAL:/home/alice$touch test
touch: cannot touch `test': Permission denied <-- fails as expected
bob@KAL:/home/alice$cd shared
bob@KAL:/home/alice/shared$touch test <-- succeeds as expected
bob@KAL:/home/alice/shared$ls -l
total 0
-rw-r--r-- 1 bob bob 0 2012-05-16 00:02 test
>在一个单独的终端中,作为root,我撤销了bob在group alice中的成员资格.
(root)
root@KAL:~# usermod -G 3001 bob
root@KAL:~# id bob
uid=3001(bob) gid=3001(bob) groups=3001(bob)
>现在,回到我被称为bob的终端,很明显会员资格的撤销被认可但没有得到尊重.
(as bob)
bob@KAL:/home/alice/shared$id bob
uid=3001(bob) gid=3001(bob) groups=3001(bob) <-- group 3000 no longer secondary group
bob@KAL:/home/alice/shared$touch test2 <-- should fail
bob@KAL:/home/alice/shared$ls -l
total 0
-rw-r--r-- 1 bob bob 0 2012-05-16 00:02 test
-rw-r--r-- 1 bob bob 0 2012-05-16 00:20 test2
bob@KAL:/home/alice/shared$rm test <-- this should also fail
bob@KAL:/home/alice/shared$ls -l
total 0
-rw-r--r-- 1 bob bob 0 2012-05-16 00:20 test2
>如果我现在退出,并且su再次作为bob,则更改是组成员资格现在得到尊重.
(as bob)
bob@KAL:/home/alice/shared$exit
exit
kp@KAL:~$sudo su bob
bob@KAL:/home/kp$cd /home/alice/shared
bob@KAL:/home/alice/shared$ls -l
total 0
-rw-r--r-- 1 bob bob 0 2012-05-16 00:20 test2
bob@KAL:/home/alice/shared$touch test3
touch: cannot touch `test3': Permission denied <-- now fails as expected
bob@KAL:/home/alice/shared$id bob
uid=3001(bob) gid=3001(bob) groups=3001(bob)
bob@KAL:/home/alice/shared$
这是使用su的一些神器吗?组成员资格是否仅在shell开始时确定?
(这是在运行Ubuntu Maverick 10.10 x86_64 2.6.35-32-generic并运行bash shell的机器上.)
解决方法:
组会员资格在会话期间保持不变,因为它们应用于流程,即您当前的shell.
内容总结
以上是互联网集市为您收集整理的linux – 对现有会话不尊重的组成员身份的更改全部内容,希望文章能够帮你解决linux – 对现有会话不尊重的组成员身份的更改所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。