在Python中,你可以使用os
模塊和subprocess
模塊來執行具有提升權限的命令
import os
import subprocess
def run_with_elevated_privileges(command):
# 獲取當前用戶的ID
current_user_id = os.getuid()
# 如果當前用戶已經是root用戶,直接運行命令
if current_user_id == 0:
subprocess.run(command, shell=True)
else:
# 創建一個臨時文件
temp_file = "/tmp/elevate_privileges_command"
# 將命令寫入臨時文件
with open(temp_file, "w") as f:
f.write(command)
# 使用sudo運行臨時文件中的命令
subprocess.run(["sudo", "-u", "root", "/bin/sh", "-c", f"cat {temp_file}"], check=True)
# 刪除臨時文件
os.remove(temp_file)
# 使用示例
command = "ls -l /root"
run_with_elevated_privileges(command)
請注意,這個示例僅適用于Linux系統。在Windows系統中,你需要使用其他方法來提升權限,例如使用pywin32
庫。