0

我有一些 freebsd 服务器,但没有 sudo。但是我想用root自动运行一些命令,就像下面的命令一样:

def autodeploy(url):
    with cd('/tmp'):
        if not exists('releasetar.sh'):
            put('/tmp/releasetar.sh', 'releasetar.sh', mode=0644)
        run("wget '{}'".format(url))
        run('su - -m -c "cd /tmp && bash /tmp/releasetar.sh"')  

suwith选项适用于-clinux,但不适用于 freebsd。我该如何解决这个问题?我希望您的解决方案可以在 linux 和 freebsd 上运行。谢谢你的回答~~

4

2 回答 2

2

如果您使用的是 fabric,您只需从命令行提供 -u 参数即可指定您希望以哪个用户身份运行任务

fab -u root <task name>

有关命令行的更多选项,请查看http://docs.fabfile.org/en/1.7/usage/fab.html#command-line-options

您还可以以编程方式设置您的用户名

from fabric.api import run, settings

with settings(user="root"):
    run("some-command")
于 2013-08-20T01:54:59.667 回答
0

sudo从端口 ( /usr/ports/security/sudo)安装。

于 2013-10-05T22:24:07.483 回答