Python 中访问密码数据库
要访问密码数据库,我们应该使用 pwd 模块。使用此模块,我们可以访问用户的帐户和密码数据库。密码数据库条目类似于元组对象。
要使用 pwd 模块,我们应该使用以下方法导入它。
import pwd
密码数据库的属性如下:
索引 | 属性及描述 |
---|---|
0 | pw_name 用户的登录名或用户名 |
1 | pw_passwd 加密的密码 |
2 | pw_uid 用户的数字 ID |
3 | pw_gid 用户所属组的数字 ID |
4 | pw_gecos 用户名和注释字段 |
5 | pw_dir 用户的 home 目录 |
6 | pw_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 ……. ……. …….
广告