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