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