我有一个运行在/var/www的www-data所在的Debian 8服务器,对于文件和子目录都有drwxr-xr-x权限。
由于我需要通过SFTP上传文件(公钥/私钥身份validation;密码和非encryption的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写入数据。 即使通过SSH直接touch test.txt也会失败, Permission denied 。
我以为rwx是read , write和execute 。 很明显,我对目录/文件权限的理解是不完整的。 有人可以帮忙吗?
你声明/ var / www的权限是drwxr-xr-x ,它是rwx的所有者。 组有rx这意味着即使您将自己添加到www-data组,该目录也不允许将组写入权限给/ var / www。
chmod g+w /var/www允许你的帐户能够将文件添加到/ var / www。
如果/ var / www下有任何子目录,则需要执行相同的chmod命令才能写入这些目录。
另外考虑设置组粘性位,以便在/ var / www中创build的所有文件都将具有www-data作为组。
chmod g+s /var/www
同样,对于/ var / www下面的任何子目录,你也要添加这个。
你说权限是drwxr-xr-x,所以755,你自己join了www-data组,所以你需要775,就是drwxrwxr-x。