结构:以根用户身份自动运行命令

2024-09-29 01:29:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些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"')  

带有su选项的su适用于linux,但不适用于freebsd。我怎样才能解决这个问题?我希望你的解决方案可以在linux和freebsd上运行。谢谢你的回答~ ~


Tags: run命令服务器urllinuxdefshsudo
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")

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

相关问题 更多 >