我有一个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 应出现在组列表中)