即使具有执行权限,ls 权限也被拒绝

即使具有执行权限,ls 权限也被拒绝

我以递归方式/srv/site将其chown www-data:www-data,并使用 递归地对其进行 chmodded ug+rwx。然后,我将自己添加到组www-data

$ sudo usermod -a -G www-data cyrus
$ sudo chgrp -R www-data /srv/site
$ sudo chmod -R ug+rwX /srv/site

但是,为什么我仍然被拒绝许可?

$ ls /srv/site
ls: cannot open directory /srv/site: Permission denied

$ cd /srv; ls -la   
total 12
drwxr-xr-x  3 root     root     4096 Aug 13 02:42 .
drwxr-xr-x 24 root     root     4096 Aug 11 21:20 ..
drwxrwx--x 10 www-data www-data 4096 Aug 13 02:42 site

答案1

您再次登录了吗?用户登录后,通常不会重置群组成员身份。

答案2

正如指出的那样,您必须重新登录才能刷新组向量。

为了不丢失工作内容(例如其他打开的终端),您可以考虑

user$ su - user

或者

user$ newgrp www-data

然后从那里你可以生成具有完整组向量的新程序。

如果是newgrp,那么您最终将成为的主要组www-data(在本例中),这很重要,例如在创建新文件时。

在的情况下,我想知道如何使用(不刷新组向量)su实现相同的效果。sudosudo -iu user

相关内容