使用Python访问密码数据库

要访问密码数据库,我们应该使用pwd模块。使用此模块,我们可以访问用户的帐户和密码数据库。密码数据库条目就像元组一样的对象。

要使用pwd模块,我们应该使用导入它。

import pwd

密码数据库的属性是-

指数属性和说明
0pw_name用户
的登录名或用户名
1pw_passwd
加密密码
2pw_uid
用户的数字ID
3pw_gid
用户组的数字ID
4pw_gecos
用户名和评论字段
5pw_dir
用户的主目录
6pw_shell
用户的命令解释器。

–通常,pw_passwd保存加密的密码。但是在新系统中,他们使用影子密码系统。因此,现在在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
…….
…….
…….