Python中的OS模块提供了与操作系统进行交互的函数。操作系统属于Python的标准实用程序模块。该模块提供了使用依赖于操作系统的函数的便携式方法。
如果文件名和路径无效或无法访问,或者具有正确类型但操作系统不接受的其他参数,则os模块中的所有函数都会引发OSError。
os.getresuid()
Python中的方法用于获取当前进程的真实,有效和已保存的用户ID,以及os.setresuid()
方法用于设置当前流程的真实,有效和已保存的用户ID。
Unix之类的操作系统中的每个用户都由不同的整数标识,该唯一数字称为UserID。为流程定义了三种类型的UserID,可以根据任务的特权动态更改。
Real UserID:It is account of owner of this process. It defines which files that this process has access to.
Effective UserID:It is normally same as Real UserID, but sometimes it is changed to enable a non-privileged user to access files that can only be accessed by root.
Saved UserID:It is used when a process is running with elevated privileges (generally root) needs to do some under-privileged work, this can be achieved by temporarily switching to non-privileged account.
While performing under-privileged work, the effective UID is changed to some lower privilege value, and the euid is saved to saved userID(suid), so that it can be used for switching back to privileged account when task is completed.
注意: os.setresuid()
和os.getresuid()
方法仅在UNIX平台和函数上可用os.setresuid()
该方法通常仅对超级用户可用,因为只有超级用户才能更改进程的ID。
超级用户是指具有运行或执行操作系统中所有程序的所有权限的root用户或管理用户。
os.getresuid()方法-
用法: os.getresuid()
参数:不需要参数
返回类型:此方法返回一个元组,其属性表示当前进程的真实,有效和已保存的用户ID。
# Python program to explain os.getresuid() method
# importing os module
import os
# Get the current process’s
# real, effective, and saved user ids.
# using os.getresuid() method
ruid, euid, suid = os.getresuid()
# Print the current process’s
# real, effective, and saved user ids.
print("Real user id of the current process:", ruid)
print("Effective user id of the current process:", euid)
print("Saved user id of the current process:", suid)
输出:
os.setresuid()方法-
用法: os.setresuid(ruid, euid, suid)
参数:
ruid:一个整数值,表示当前进程的新用户ID。
euid:一个整数值,表示当前进程的新有效用户ID。
suid:一个整数值,代表当前进程的新保存的用户ID。
返回类型:此方法不返回任何值。
# Python program to explain os.setresuid() method
# importing os module
import os
# Get the current process’s
# real, effective, and saved user ids.
# using os.getresuid() method
ruid, euid, suid = os.getresuid()
# Print the current process’s
# real, effective, and saved user ids.
print("Real user id of the current process:", ruid)
print("Effective user id of the current process:", euid)
print("Saved user id of the current process:", suid)
# Change the current process’s
# real, effective, and saved user ids
# using os.setresuid() method
ruid = 100
euid = 200
suid = 300
os.setresuid(ruid, euid, suid)
print("\nReal, effective, and saved user ids changed\n")
# Get the current process’s
# real, effective, and saved user ids.
# using os.getresuid() method
ruid, euid, suid = os.getresuid()
# Print the current process’s
# real, effective, and saved user ids.
print("Real user id of the current process:", ruid)
print("Effective user id of the current process:", euid)
print("Saved user id of the current process:", suid)
输出:
相关用法
- Python next()用法及代码示例
- Python set()用法及代码示例
- Python os.dup()用法及代码示例
- Python os.WEXITSTATUS()用法及代码示例
- Python os._exit()用法及代码示例
- Python PIL UnsahrpMask()用法及代码示例
- Python Numpy np.fft()用法及代码示例
- Python os.abort()用法及代码示例
- Python PIL RankFilter()用法及代码示例
- Python os.WIFEXITED()用法及代码示例
- Python os.setgroups()用法及代码示例
- Python os.getcwd()用法及代码示例
- Python os.sendfile()用法及代码示例
- Python os.pipe2()用法及代码示例
注:本文由纯净天空筛选整理自ihritik大神的英文原创作品 Python | os.getresuid() and os.setresuid() method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。