我有一个运行的 Debian 8 服务器,该服务器/var/www
由文件和子目录拥有www-data
并具有权限drwxr-xr-x
。
由于我需要通过 SFTP 上传文件(公钥/私钥身份验证;密码和未加密的 FTP 被阻止)我认为将我的用户帐户添加到组应该没有问题www-data
。因此,我执行:
sudo usermod --append --groups www-data my-user
我已经注销了当前的 SSH 会话以触发重新加载权限。id my-user
现在显示:
uid=1000(my-user) gid=1000(my-user) groups=1000(my-user),33(www-data)
但是,我仍然无法通过 SFTP 在/var/www
. 即使是简单的touch test.txt
直接通过 SSH 也失败了Permission denied
。
我以为rwx
是read
,write
和execute
。显然我对目录/文件权限的理解是不完整的。有人可以帮忙吗?
您声明 /var/www 的权限
drwxr-xr-x
仅rwx
适用于所有者。组有r-x
这意味着即使您将自己添加到www-data
组中,该目录也不允许该组对 /var/www 的写入权限。chmod g+w /var/www
允许您的帐户能够将文件添加到 /var/www。如果 /var/www 下有任何子目录,
chmod
如果您需要能够写入这些目录,您将需要执行相同的命令。还可以考虑设置组粘性位,以便在 /var/www 中创建的所有文件都将
www-data
作为组。chmod g+s /var/www
同样,对于 /var/www 下的任何子目录,您也需要添加它。
你说权限是drwxr-xr-x,所以是755,你把自己加入了www-data组,所以你需要775,也就是drwxrwxr-x。