无法以属于该组的用户身份编辑该组拥有的文件

无法以属于该组的用户身份编辑该组拥有的文件

我在 Digital Ocean 上运行 Ubuntu 14.04.1 LTS 服务器。我试图使我能够/srv/www从我的普通用户帐户编辑文件,而无需成为 root。

目前,/srv/www归以下公司所有www-data:www-data

sudo chown -R www-data:www-data /srv/www 

我还将所有文件的权限设置为664,并将目录的权限设置为755

sudo find /srv/www/ -type f -exec sudo chmod 644 {} \;
sudo find /srv/www/ -type d -exec sudo chmod 755 {} \;

然后我将我的用户添加shea到该www-data组:

sudo adduser shea www-data

但是,当我尝试时touch /srv/www/foo,收到以下错误:

touch: cannot touch ‘/srv/www/foo’: Permission denied

如果我将该sudo命令添加到前面,它会正常工作,但我不想一直这样做;而且它不能通过 SFTP 工作。

将所有者更改为shea:www-data允许我写入文件,但 WordPress 无法更新插件和主题。

sudo chown -R shea:www-data /srv/www

有没有办法让www-datashea用户都有权访问/srv/www?我以为将两个用户都添加到一个组就可以解决问题,但我似乎无法让它发挥作用。

答案1

您设置的是 644,即组读,而不是组写!

sudo chown -R www-data:www-data /srv/www
sudo chmod -R g+w /srv/www

答案2

我在 DigitalOcean 上运行 16.04 时遇到了类似的问题。以下是我遵循的步骤:

  1. 授予与文件关联的组写入权限/var/www/html

    sudo find /srv/www/ -type f -exec sudo chmod 664 {} \;
    
  2. 添加myuserwww-data群组:

    sudo adduser myuser www-data
    
  3. 确认权限,例如:

    ls -la /var/www/html/wp-content/themes/responsive/style.css
    

    给出

    -rw-rw-r-- www-data www-data 3892 Jan  1 2017 style.css
    
  4. 确认组成员身份id myuser

    uid=1000(myuser) gid=1000(myuser) groups=1000(myuser),33(www-data),110*lxd)
    

style.css但是,当我尝试不sudo使用我的帐户进行更新时myuser,出现permission denied错误。

解决方案

myuser我必须从新权限生效前登录的所有会话中注销并重新登录。不知道为什么,但希望这可以帮助其他处于类似情况的人。

相关内容