Python | os.setuid 函数

Lasted 2020-12-07 14:38:22

os.setuid 函数设置当前进程的用户ID。os.getuid() 函数可以获取用户ID。

Linux 系统中可以在 /etc/passwd 查看用户 ID。

实际用户ID和有效用户ID

  • check实际用户ID和实际用户组ID - 标识我是谁。也就是登录用户的uid和gid,比如我的Linux以simon登录,在Linux运行的所有的命令的实际用户ID都是simon的uid,实际用户组ID都是simon的gid(可以用id命令查看)。
  • check有效用户ID和有效用户组ID - 进程用来决定我们对资源的访问权限。一般情况下,有效用户ID等于实际用户ID,有效用户组ID等于实际用户组ID。当设置-用户-ID(SUID)位设置,则有效用户ID等于文件的所有者的uid,而不是实际用户ID;同样,如果设置了设置-用户组-ID(SGID)位,则有效用户组ID等于文件所有者的gid,而不是实际用户组ID。

函数定义

os.setuid(uid)
# 函数定义

if sys.platform != 'win32':
    # Unix only
    ...
    def setuid(uid: int) -> None: ...
    ...

兼容性:Unix 系统。

参数

  • checkuid - 用户 ID。

返回值

  • checkNone - 无。

示例1: - 使用 os.setuid() 函数设置用户 ID。

# coding=utf-8

# Python3 代码
# 讲解怎样使用 os.setuid() 函数设置用户 ID

# 引入 os 库
import os

# 当前用户 ID
print("UID::", os.getuid())

# 修改用户 ID
uid = 1000
os.setuid(uid)

# 当前用户 ID
print("UID::", os.getuid())
UID:: 0
UID:: 1000