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