2011-12-09 30 views
17

我正在使用fabric在远程服务器上启动命令。
我想以不同的用户身份启动此命令(既不是连接的也不是root)。Fabric - sudo -u

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

试图

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

Oviously这是行不通的,因为-u将被视为一个命令和须藤

的不是一种选择出来:/斌/庆典 - u:未找到命令

www-data是应该运行命令的用户)
如何使用www-data从Fabric运行我的命令?

+0

值得注意的是,我认为应用程序不应该要求sudo特权。我认为我们应该始终能够处理像ACL这样的东西。 –

回答

42

documentation来看:

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

HTH!

+1

谢谢,我没有看到[这部分](http://docs.fabfile.org/en/1.3.3/api/core/operations.html?highlight=sudo#fabric.operations.sudo)文档。特别是因为它几乎是我的例子记录:(对不起 –