いくつかのスクリプトを起動するためのプラットフォームを構築しようとしています。このスクリプトは、各ユーザーのホーム フォルダーに配置されます。すべての起動は各ユーザー 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 OS 上) に属しており、すべての root 権限を持っています。
root ユーザーで同じコードを起動しようとすると、別のエラーが発生します。
OSError: [Errno 13] Permission denied
誰かが何が起こっているのかを理解するのを手伝ってくれるなら...