除非我的用户和我的用户组拥有整个文件夹,否则无法删除文件

除非我的用户和我的用户组拥有整个文件夹,否则无法删除文件

我有一个index.php文件/var/www/html

myuser@ubuntu:/var/www/html$ ls -l
-rwxrwxr--  1 www-data     www-data       26 Jun 19 22:50 index.php

但除非我使用,否则我无法删除它sudo。我被拒绝权限。但我将 myuser 添加到 www-data 组(并退出并登录):

myuser@ubuntu:/var/www/html$ getent group www-data
www-data:x:33:myuser,www-data

并且该组拥有以下所有必要的权限/var/www/html

drwxrwxr-x  4 www-data www-data html/

index.php

-rwxrwxr-x  1 www-data www-data index.php*

我可以在不使用 sudo 的情况下删除此文件的唯一方法是,如果我与我的用户和我的用户组拥有整个 /var/www:

sudo chown -R /var/www/html myuser:myuser

我还注意到另一个奇怪的行为,好像myuser被完全忽略了:正如您在上面的权限中看到的,所有用户都具有执行(r-x)权限。如果我从所有用户中删除执行权限,myuser则 的访问将被完全拒绝。所以就像他在www-data组中的权限被忽略了一样

但为什么呢?我认为如果我在一个组内,并且该组具有适当的权限,我也应该能够删除它。

答案1

一种可能性是,用户最近才被添加到组中,并且当前 shell 在那之前启动,因此该组不适用于它:

myuser@ubuntu:~$ getent group www-data
www-data:x:33:myuser
myuser@ubuntu:~$ id
uid=1000(myuser) gid=1000(myuser) groups=1000(myuser),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),118(lpadmin),129(sambashare)

如果是这种情况,您只需重新启动系统或注销并重新登录即可。id您可以使用命令检查问题是否已解决(www-data 应出现在组列表中)

相关内容