linux – 对现有会话不尊重的组成员身份的更改
发布时间:2020-12-13 23:02:53 所属栏目:Linux 来源:网络整理
导读:我遇到了 Linux权限和群组成员身份的奇怪行为让我摸不着头脑.情况如下: 我有两个用户:alice和bob alice@KAL:~$id aliceuid=3000(alice) gid=3000(alice) groups=3000(alice)alice@KAL:~$id bobuid=3001(bob) gid=3001(bob) groups=3001(bob) 在alice的主目
我遇到了
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.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |