24

我正在使用 pscp 使用以下命令将文件传输到虚拟 ubuntu 服务器:

pscp test.php user@server:/var/www/test.php

我得到错误权限被拒绝。如果我尝试转移到文件夹 /home/user/ 我没有问题。

我想这与我使用的用户无权访问文件夹 /var/www/ 有关。当我使用 SSH 时,我必须使用 sudo 来访问 /var/www/ 路径——我确实这样做了。

是否可以指定 pscp 应该“sudo”传输到服务器,以便我可以访问 /var/www/ 路径并实际上能够将文件传输到该文件夹​​?

4

3 回答 3

25

如果您拥有服务器:

将自己添加到 www-data 组:

sudo usermod -a -G www-data <username>

并设置正确的权限:

sudo chown -R www-data:www-data /var/www/
sudo chmod -R 0775 /var/www/

这应该可以解决问题。

于 2010-12-22T00:04:55.960 回答
9

编写时请注意以下内容

sudo usermod -G www-data <username>

选项 -G 将使指定的用户 () 成为指定的特定组的成员。因此,上述语句将使用户成为组 www-data 的一部分,但会将用户从用户所属的任何其他组中删除。为避免这种情况,您必须添加选项 -a 或指定您希望用户加入的所有当前组。我不小心将用户“管理员”从 sudo 组中取出,因为我不知道这一点。因此,如果您希望指定用户保持其当前组成员身份,请编写以下命令。

sudo usermod -G -a www-data <username>

有关 usermod 命令的更多信息,请访问:

Ubuntu 手册页 - usermod

于 2014-06-02T12:48:35.457 回答
2

我有同样的错误“pscp:无法打开YourFilePath:权限被拒绝”,

检查你试图覆盖的文件的所有权,如果你不能覆盖它,你会得到这个错误,

如果您无法控制远程文件,只需尝试重命名您要移动的文件。

于 2018-03-21T15:48:51.107 回答