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 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告