我有一个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
组中的权限被忽略了
但为什么?我认为如果我在一个组内,并且该组具有适当的权限,我也应该能够将其删除。
一种可能性是用户最近才添加到组中,并且在此之前启动了当前 shell,因此组未应用于它:
如果是这种情况,您只需重新启动系统或退出并再次登录。使用该
id
命令,您可以检查问题是否已解决(www-data 应出现在组列表中)