Python os.setreuid()
Python os模块中的所有函数在文件名和路径无效或不可访问,或其他具有正确类型但操作系统不接受的参数时都会引发OSError。
Python中的os.setreuid()方法用于设置当前进程的真实有效的用户id。
Unix和操作系统中的每个用户都由不同的整数标识,这个唯一的数字称为UserID。真实的UserID表示流程所有者的帐户。它定义了进程可以访问哪些文件。Effective UserID通常与Real UserID相同,但有时它被修改为允许非特权用户访问只能由root访问的文件。
注意:os.setreuid()方法只在UNIX平台上可用,并且该方法的功能通常只对超级用户可用。
超级用户是指具有运行或执行操作系统中任何程序的所有权限的根用户或管理用户。
语法:os.setreuid(ruid, euid)
参数:
ruid:整型值,表示当前进程的新用户id。
euid:整型值,表示当前进程新的有效用户id。
返回类型:此方法不返回任何值。
示例1
使用os.setreuid()方法
# Python program to explain os.setreuid() method
# importing os module
import os
# Get the current process’s
# real user id
# using os.getuid() method
ruid = os.getuid()
# Get the current process’s
# effective user id.
# using os.geteuid() method
euid = os.geteuid()
# Print the current process’s
# real and effective user id.
print("Real user id of the current process:", ruid)
print("Effective user id of the current process:", euid)
# Change the current process’s
# real and effective user ids
# using os.setreuid() method
ruid = 100
euid = 200
os.setreuid(ruid, euid)
print("\nReal and effective user ids changed\n")
# Get the current process’s
# real and effective user ids
ruid = os.getuid()
euid = os.geteuid()
# Print the current process’s
# real and effective user id.
print("Real user id of the current process:", ruid)
print("Effective user id of the current process:", euid)
输出:
Real user id of the current process: 0
Effective user id of the current process: 0
Real and effective user ids changed
Real user id of the current process: 100
Effective user id of the current process: 200