【问题标题】:Using pscp and getting permission denied使用 pscp 并获得权限被拒绝
【发布时间】:2010-12-21 20:17:19
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 将文件发送至/home/user/test.php。然后使用 plink 或其他 SSH 客户端将文件移动到那里,如果需要,使用 sudo。我认为这比玩权限和破坏一切要好。
  • Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Server FaultWebmaster Stack Exchange 会是一个更好的提问地点。

标签: ubuntu permissions sudo putty


【解决方案1】:

如果您拥有服务器:

将自己添加到 www-data 组:

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

并设置正确的权限:

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

这应该可以解决问题。

【讨论】:

  • 我会记下一些文件夹的当前所有者,因为执行上述操作会破坏我的一个站点。我知道这是我自己的错,但是我不得不改回所有权,因为我已将 ruby​​/rails/rvm 配置为使用一组单独的用户名。
  • 在深入并运行这些命令之前应该阅读此评论。在工作中完全搞砸了我们的 EC2 实例,现在开发服务器已经关闭了几个小时。 :( 小心使用sudo!!
  • sudo usermod -a -G www-data &lt;username&gt; 为我工作
  • "-a" 必须在 "-G" 之前,否则我会收到 "group not found" 错误
【解决方案2】:

写的时候注意以下几点

sudo usermod -G www-data <username>

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

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

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

Ubuntu manpages - usermod

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

    • 这是我的问题。当我尝试使用用户覆盖它时,该文件是由 root 创建的。谢谢。
    猜你喜欢
    • 2021-01-21
    • 2018-11-12
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    • 2019-10-22
    • 1970-01-01
    相关资源
    最近更新 更多