【发布时间】:2023-12-03 13:19:01
【问题描述】:
如何使用python脚本运行sudo bash
import subprocess
import os
sudoPassword2 = 'abcd1234'
command2 = 'sudo bash'
p2 = os.system('echo %s|sudo -S %s' % (sudoPassword2, command2))
我收到此错误:
bash: line 1: abcd1234: command not found
当我尝试这样做时,它也给出错误
import shlex
import subprocess
command1 = shlex.split('cd /home/backups')
subprocess.call(command1)
错误 cd 没有文件或目录
也试过这个:
import shlex
import subprocess
subprocess.call(["cd","/home","/backups"])
【问题讨论】:
-
出现这种情况是因为 bash 需要输入,并且因为没有其他内容,它使用来自 echo ...的 args ...
-
在 sudo 下运行你的脚本本身。不要在脚本中包含您的 sudo 密码,因为它首先破坏了拥有密码的目的。如果必须,请重新配置 sudo 以允许您在没有密码的情况下执行特定命令,但不要在不了解安全隐患的情况下执行此操作。
-
cd不是程序。请改用os.chdir。
标签: python python-3.x bash shell sudo