在Python中,你可以使用os.system()
或subprocess
模塊來執行帶有sudo權限的命令
import subprocess
def run_with_sudo(command):
sudo_password = input("請輸入你的sudo密碼:")
full_command = f"echo {sudo_password} | sudo -S {command}"
subprocess.run(full_command, shell=True, check=True)
# 使用示例
run_with_sudo("ls /root")
請注意,這種方法可能存在安全風險,因為你的sudo密碼將在命令行中顯示。另外,這種方法可能不適用于所有系統,因為不是所有的系統都配置了echo
命令來處理sudo密碼。
更安全的方法是使用subprocess
模塊的Popen
類,如下所示:
import subprocess
def run_with_sudo(command):
sudo_process = subprocess.Popen(["sudo", "-S"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
sudo_process.communicate(input=command.encode())
# 使用示例
run_with_sudo("ls /root")
這種方法不會在命令行中顯示sudo密碼,但仍然存在一定的安全風險。在實際應用中,你應該盡量避免在Python腳本中使用sudo權限,除非絕對必要。