2011-12-09 59 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)文檔。特別是因爲它幾乎是我的例子記錄:(對不起 –