当我尝试将我的 Web 文件放入/var/www
我的 ec2 Ubuntu 实例上的 apache 中时,它给出了一个错误,指出我没有权限。
Permission denied.
Error code: 3
Error message from server: Permission denied
Request code: 3
我如何授予自己权限来执行此操作,或者/var/www
使用 WinSCP 复制文件的最佳方法是什么?
答案1
我在 WinSCP 中遇到了同样的错误。一种解决方案是使用 更改“/www/”文件夹的所有权chown
。这样,您可以让您登录的用户成为所有者,而不是“root”成为所有者。我使用的是 Amazon Linux 实例而不是 Ubuntu,但这个命令对我有用:
sudo chown -R -v ec2-user /var/www/
用户“ec2-user”是我登录的用户。
可能有用的链接
- alestic.com:在 EC2 的官方 Ubuntu 镜像上使用 sudo、ssh、rsync
- Apache 网站:命令列表
答案2
为通过 WinSCP 登录的用户启用写入权限。有两种方法可以做到这一点。
第一种方法是更改文件夹的权限,允许任何人写入。这不是最好的安全措施。
chmod 777 /var/www
第二种方法是将您的用户添加到拥有该目录的组,然后设置该组对该目录的写入权限。
找出目录的所有者:
ls -l /var | grep www
您会看到类似以下内容: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
现在只需向该组添加写权限。
chmod 770 /var/www
现在
ls -l /var | grep www
应返回:drwxrwx--- 9 www-data www-data 4096 Jul 14 2009 www
这样,您将能够写入目录,但不会向所有人开放写权限。
答案3
在 ec2 上这对我来说有效。使用用户“ec2-user”通过 putty 登录到 box 并使用命令:
sudo root
chmod 777 <NAME_OF_FOLDER>
注意:这授予所有用户写访问权限。
现在应该可以使用 WinScp 进行写入。
答案4
您需要授予用户写入权限,记住以前的使用权限stat /var/www
。
然后,您可以更改它们,sudo chmod 666 /var/www
并在需要时将它们改回来。
请查阅man chmod
并man sudo
参考互联网上的其他文件权限手册以获取更多信息...