我正在使用pscp使用以下命令将文件传输到虚拟ubuntu服务器:
pscp test.php user@server:/var/www/test.php
我得到了错误权限被拒绝。如果我尝试转移到文件夹/ home / user /我没有问题。
我想这与我正在使用的用户无权访问文件夹/ var / www /有关。当我使用SSH时,我必须使用sudo来访问/ var / www / path - 而且我这样做。
是否可以指定pscp应该“sudo”传输到服务器,以便我可以访问/ var / www / path并实际上能够将文件传输到该文件夹?
答案 0 :(得分:11)
如果您拥有服务器:
将自己添加到www-data组:
sudo usermod -a -G www-data <username>
并设置正确的权限:
sudo chown -R www-data:www-data /var/www/
sudo chmod -R 0775 /var/www/
这应该可以解决问题。
答案 1 :(得分:8)
当你写
时要小心以下几点sudo usermod -G www-data <username>
选项-G将使指定的user()成为指定的特定组的成员。因此,上述语句将使用户成为组www-data的一部分,但是将用户从用户所属的任何其他组中删除。要避免这种情况,您必须添加选项-a或指定您希望用户参与的所有当前组。我意外地把用户&#34;管理员&#34;出了sudo小组,因为我不知道这一点。因此,如果您希望指定的用户保留其当前的组成员身份,请编写以下命令。
sudo usermod -G -a www-data <username>
有关usermod命令的更多信息,请访问:
答案 2 :(得分:1)
我遇到了同样的错误“pscp:无法打开YourFilePath:权限被拒绝”,
检查您要覆盖的文件的所有权, 如果你不能覆盖它,你会得到这个错误,
如果您无法控制远程文件,只需尝试重命名您要移动的文件即可。