如何使用 WinSCP 将文件复制到`/var/www`?

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”是我登录时使用的用户。

可能有用的链接


Chr*_*ing 9

为通过 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

有了这个,您将能够写入目录,同时不会向所有人开放写入权限。


Tam*_*man 0

您需要授予用户写入权限,记住之前使用的权限stat /var/www

然后您可以更改它们,sudo chmod 666 /var/www并在需要时将它们改回来。

请参阅man chmod互联网man sudo上的其他文件权限手册以获取更多信息...