訪問 Unix/Linux 密碼資料庫 (pwd)


Python 標準庫中的 pwd 模組提供了訪問 Unix/Linux 作業系統中使用者帳戶密碼資料庫的功能。此密碼資料庫中的條目儲存為類似元組的物件。元組的結構根據 CPython API 中的 C 檔案 pwd.h 中的以下 passwd 結構。

索引屬性含義
0pw_name登入名
1pw_passwd可選的加密密碼
2pw_uid數值使用者 ID
3pw_gid數值組 ID
4pw_gecos使用者名稱或註釋欄位
5pw_dir使用者主目錄
6pw_shell使用者命令直譯器

pwd 模組定義了以下函式:

>>> import pwd
>>> dir(pwd)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'getpwall', 'getpwnam', 'getpwuid', 'struct_passwd']

getpwnam() - 此函式返回密碼資料庫中對應於指定使用者名稱的記錄。

>>> pwd.getpwnam('root')
pwd.struct_passwd(pw_name s= 'root', pw_passwd = 'x', pw_uid = 0, pw_gid = 0, pw_gecos = 'root', pw_dir = '/root', pw_shell = '/bin/bash')

getpwuid() - 此函式返回密碼資料庫中對應於給定 UID 的記錄。

>>> pwd.getpwuid(0)
pwd.struct_passwd(pw_name = 'root', pw_passwd = 'x', pw_uid = 0, pw_gid = 0, pw_gecos = 'root', pw_dir = '/root', pw_shell = '/bin/bash')

getpwall() - 此函式返回一個元組列表。每個元組包含每個使用者的 passwd 結構資訊。結構中的 uid 和 gid 專案是整數。如果找不到對應於傳遞引數的條目,則會引發 KeyError 異常。

>>> pwd.getpwnam('hello')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'getpwnam(): name not found: hello'

更新於: 2020-06-27

292 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.