and*_*rew 11 apache-http-server winscp amazon-ec2
当我尝试将我的 Web 文件放入/var/www我的 ec2 Ubuntu 实例上的 apache 时,它给了我一个错误,指出我没有权限。
Permission denied.
Error code: 3
Error message from server: Permission denied
Request code: 3
Run Code Online (Sandbox Code Playgroud)
我如何允许自己这样做或/var/www使用 WinSCP将文件复制到的最佳方法是什么?
chr*_*gen 15
我在 WinSCP 中遇到了同样的错误。一种解决方案是使用chown. 这样,您可以让您登录的用户成为所有者,而不是“root”成为所有者。我使用的是 Amazon Linux 而不是 Ubuntu 的实例,但此命令对我有用:
sudo chown -R -v ec2-user /var/www/
Run Code Online (Sandbox Code Playgroud)
用户“ec2-user”是我登录时使用的用户。
为通过 WinSCP 登录的用户启用写入权限。有两种方法可以做到这一点。
第一种方法是更改文件夹的权限以允许任何人对其进行写入。这不是最好的安全性。
chmod 777 /var/www
Run Code Online (Sandbox Code Playgroud)
第二种方法是将您的用户添加到拥有该目录的组中,然后为该组设置写入该目录的权限。
找出谁拥有该目录:
ls -l /var | grep www
Run Code Online (Sandbox Code Playgroud)
你会看到如下内容: drwxr-x--- 9 www-data www-data 4096 Jul 14 2009 www 需要注意的重要事项是 root 和 root 这两个名称。在这种情况下,目录的所有者是 www-data,目录的组是 www-data。所以现在您要将您的用户添加到 www-data 组。
usermod -G www-data user
Run Code Online (Sandbox Code Playgroud)
现在只需将写入权限添加到组。
chmod 770 /var/www
Run Code Online (Sandbox Code Playgroud)
现在
ls -l /var | grep www
Run Code Online (Sandbox Code Playgroud)
应该返回:drwxrwx--- 9 www-data www-data 4096 Jul 14 2009 www
有了这个,您将能够写入目录,同时不会向所有人开放写入权限。
您需要授予用户写入权限,记住之前使用的权限stat /var/www。
然后您可以更改它们,sudo chmod 666 /var/www并在需要时将它们改回来。
请参阅man chmod互联网man sudo上的其他文件权限手册以获取更多信息...