在Python中使用su - user
执行多个命令,可以使用subprocess
模块来实现。subprocess
模块允许你在Python脚本中执行外部命令,并获取其输出。
下面是一个示例代码,演示如何在Python中使用su - user
执行多个命令:
import subprocess
def execute_commands_as_user(commands, user):
# 构建su命令
su_command = ['su', '-', user, '-c']
# 执行多个命令
for command in commands:
# 构建完整的命令
full_command = su_command + [command]
# 执行命令并获取输出
process = subprocess.Popen(full_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, error = process.communicate()
# 打印输出结果
print(f'Command: {command}')
print(f'Output: {output.decode()}')
print(f'Error: {error.decode()}')
print('---')
# 要执行的命令列表
commands = [
'ls',
'pwd',
'whoami'
]
# 执行命令作为指定用户
execute_commands_as_user(commands, 'user')
上述代码中,execute_commands_as_user
函数接受一个命令列表和一个用户参数。它使用su - user -c
命令来切换到指定用户,并执行每个命令。然后,它通过subprocess.Popen
执行命令,并使用communicate
方法获取命令的输出和错误信息。
你可以根据需要修改commands
列表中的命令,以及execute_commands_as_user
函数中的用户参数。请确保在执行命令时具有足够的权限。
注意:在实际使用中,请谨慎处理使用su
命令切换用户的操作,确保安全性和权限控制。
领取专属 10元无门槛券
手把手带您无忧上云