我正在尝试构建一个平台来启动一些脚本。此脚本放置在每个用户的主文件夹中。每次启动都应该使用每个用户 ID 完成,因此,我正在为每个用户执行以下操作:
user_id = pwd.getpwnam( user )[ 3 ]
user_home = pwd.getpwnam( user )[ 5 ]
os.chdir( user_home )
os.setuid( user_id )
subprocess.Popen( shlex.split( "user_script.py" ) )
但是,当 python 尝试这样做时os.setuid( user_id )
,会引发此异常:
Traceback (most recent call last):
File "launcher.py", line XX, in <module>
OSError: [Errno 1] Operation not permitted
顺便说一句,启动这个脚本的用户在 root 组中(在 GNU/linux 操作系统上),它拥有所有的 root 权限。
如果我尝试使用 root 用户启动相同的代码,我会得到一个不同的错误:
OSError: [Errno 13] Permission denied
如果有人可以帮助我了解正在发生的事情,请...