Fabric - sudo -u

18 投票
1 回答
10681 浏览
提问于 2025-04-17 08:02

我正在使用fabric在远程服务器上执行一个命令。
我想以一个不同的用户身份来执行这个命令(既不是当前连接的用户,也不是root用户)。

def colstat():
  run('python manage.py collectstatic --noinput')

尝试中

def colstat():
  sudo('-u www-data python manage.py collectstatic --noinput')

显然这样做是行不通的,因为-u会被当作一个命令,而不是sudo的一个选项。

输出:/bin/bash: -u : 找不到命令

(www-data是应该执行这个命令的用户)
我该如何通过Fabric使用www-data来运行我的命令呢?

1 个回答

44

根据文档的内容来看:

sudo('python manage.py collectstatic --noinput', user='www-data')

撰写回答