Python | os.setuid 函數

最近更新時間 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
rss_feed