Python 中訪問密碼資料庫


要訪問密碼資料庫,我們應該使用 pwd 模組。使用此模組,我們可以訪問使用者的帳戶和密碼資料庫。密碼資料庫條目類似於元組物件。

要使用 pwd 模組,我們應該使用以下方法匯入它。

import pwd

密碼資料庫的屬性如下:

索引屬性及描述
0pw_name
使用者的登入名或使用者名稱
1pw_passwd
加密的密碼
2pw_uid
使用者的數字 ID
3pw_gid
使用者所屬組的數字 ID
4pw_gecos
使用者名稱和註釋欄位
5pw_dir
使用者的 home 目錄
6pw_shell
使用者的命令直譯器。

注意 - 通常,pw_passwd 儲存加密的密碼。但在新系統中,它們使用 shadow 密碼系統。因此,現在在 pw_passwd 中,我們只能找到“*”或“x”符號。

此模組的一些方法如下:

方法 pwd.getpwuid(uid)

此方法將返回給定數字使用者 ID 的密碼資料庫條目。

方法 pwd.getpwnam(name)

此方法將返回給定使用者名稱的密碼資料庫條目。

方法 pwd.getpwall()

此方法將返回所有密碼資料庫條目。

示例程式碼

即時演示

import pwd
print("Root: " + str(pwd.getpwnam('root')) + '\n') #Password detail for root
for entry in pwd.getpwall():
   print("Name: " + entry[0] + "\t\tShell: " + entry.pw_shell)

輸出

$ python3 example.py
Root: 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')

Name: root       Shell: /bin/bash
Name: daemon       Shell: /usr/sbin/nologin
Name: bin       Shell: /usr/sbin/nologin
Name: sys       Shell: /usr/sbin/nologin
Name: sync       Shell: /bin/sync
Name: games       Shell: /usr/sbin/nologin
Name: man       Shell: /usr/sbin/nologin
…….
…….
…….

更新於: 2020-06-25

489 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.