python fabric:put()导致权限被拒绝

cal*_*iph 2 python fabric

我使用织物并具有:

put('/projects/configuration-management/prototype','/etc/nginx/sites-available')
Run Code Online (Sandbox Code Playgroud)

结果是:

Underlying exception:
    Permission denied

Aborting.
Run Code Online (Sandbox Code Playgroud)

其他配置文件可以轻松上传。我怎样才能避免我的问题?

Dam*_*ero 5

看起来您需要超级用户权限,使用sudo它运行它,它会工作得很好

在文档中(链接在这里)说:

虽然 SFTP 协议(​​放置使用)无法直接将文件上传到不属于连接用户的位置,但您可以指定use_sudo=True来解决此问题。设置后,此设置会导致 put 将本地文件上传到远程端的临时位置(默认为远程用户的 $HOME;这可能会通过 temp_dir 覆盖),然后使用 sudo 将它们移动到 remote_path。

  • 这似乎不适用于最新版本的 Fabric2 (2认同)