我正在運行一個關於在/ tmp中打開文件時刪除root權限的問題。這是有問題的行:在Python中刪除/啓用Root權限打開文件
open(filepath, 'wb')
當程序不與sudo命令運行一切工作正常,這裏的權限,當我這樣os.stat
posix.stat_result(st_mode=17407, st_ino=261652, st_dev=64512L, st_nlink=206, st_uid=1000, st_gid=1000, st_size=12288, st_atime=1352314677, st_mtime=1352316340, st_ctime=1352316340)
我碰到一個問題當程序使用sudo命令運行時。我嘗試用以下
os.setegid(int(os.getenv("SUDO_GID")))
os.seteuid(int(os.getenv("SUDO_UID")))
放棄特權與
os.seteuid(0)
os.setegid(0)
重新啓用它們的錯誤消息是
IOError: [Errno 13] Permission denied:
os.stat產量
posix.stat_result(st_mode=17407, st_ino=261652, st_dev=64512L, st_nlink=204, st_uid=1000, st_gid=1000, st_size=4096, st_atime=1352314677, st_mtime=1352316329, st_ctime=1352316329)
理想我'喜歡運行一個特定的功能就好像用戶從未通過相應地刪除和啓用root權限來調用sudo一樣。
可以發佈完整的代碼來重現問題嗎? – del
[在Python中刪除root權限]可能的副本(https://stackoverflow.com/questions/2699907/dropping-root-permissions-in-python) – jww