在Python中,你可以使用subprocess
模塊來執行sudo
命令
import subprocess
def run_sudo_command(command, user='root'):
# 創建一個命令列表,將sudo放在第一個位置
cmd = ['sudo', '-u', user] + command
# 使用subprocess.run執行命令
result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
# 檢查命令是否成功執行
if result.returncode == 0:
print("命令執行成功:")
print(result.stdout)
else:
print("命令執行失敗:")
print(result.stderr)
# 使用示例
run_sudo_command(['ls', '-l'])
在這個示例中,我們定義了一個名為run_sudo_command
的函數,它接受一個命令列表和一個可選的用戶參數(默認為’root’)。然后,我們使用subprocess.run()
執行這個命令列表,并將stdout
和stderr
捕獲到變量中。最后,我們檢查命令的返回碼(returncode
),如果成功執行(返回碼為0),則打印輸出結果,否則打印錯誤信息。
請注意,這個示例假設你已經配置了sudoers
文件,允許指定的用戶在不需要輸入密碼的情況下執行sudo
命令。你可以通過編輯/etc/sudoers
文件來實現這一點,或者使用visudo
命令來安全地編輯。例如,你可以添加以下行來允許用戶myuser
執行任何sudo
命令而不需要密碼:
myuser ALL=(ALL) NOPASSWD: ALL