大家好,以下是我想做的事情:我的脚本将以root身份运行,我希望能够以不同的用户身份执行各种命令(例如ls、rm、touch等)。
我的问题在于使用
我的问题在于使用
preexec_fn=os.setuid(userid))
会将父进程的userid也设置为该值。请问有什么建议吗?是否preexec_fn
不适用于此目的?另外需要指出的是,这需要按照twisted的方式实现(我可能不太了解)。是否getProcessOutputAndValue
是正确的方法?如果是,如何实现类似这样的操作?print 'uid is %s' % os.getuid()
cmdstr = ['ls']
process = subprocess.Popen(cmdstr,stdout=subprocess.PIPE, stderr=subprocess.STDOUT, preexec_fn=os.setuid(10033))
print 'uid of parent after child startup is %s' % os.getuid()
process.wait()
print 'uid of parent after child finished is %s' % os.getuid()
输出:
uid is 0
uid of parent after child startup is 10033
uid of parent after child finished is 10033
os.listdir (用于列出目录内容)
,os.utime
(用于修改文件时间戳),shutil (用于删除文件或目录) 或 os.remove )
? - kurumi