在Python中,你可以使用os
和subprocess
库来执行带有sudo权限的命令
import os import subprocess def run_sudo_command(command, sudo_password=None): if sudo_password: # 创建一个子进程,将stdin设置为字符串IO,以便我们可以传递密码 process = subprocess.Popen(['sudo', '-S'] + command, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) # 将sudo密码写入子进程的stdin process.stdin.write(sudo_password.encode()) process.stdin.flush() # 等待子进程完成 stdout, stderr = process.communicate() # 检查子进程的退出状态 if process.returncode != 0: print(f"Error occurred while running sudo command: {stderr.decode()}") return None else: # 如果没有提供密码,直接运行命令 process = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) # 检查子进程的退出状态 if process.returncode != 0: print(f"Error occurred while running sudo command: {process.stderr}") return None return process.stdout # 使用示例 command = ["ls", "-l"] sudo_password = "your_sudo_password" # 注意:在实际使用中,不建议将密码硬编码到代码中 output = run_sudo_command(command, sudo_password) if output: print(output)
请注意,将密码硬编码到代码中是不安全的。在实际使用中,可以考虑使用更安全的方法,例如使用SSH密钥进行身份验证。