在Python中访问影子密码数据库

要访问UNIX影子密码数据库,我们应该使用spwd模块。我们需要足够的特权才能访问此文件。影子密码数据库条目就像元组一样的对象。

要使用spwd模块,我们应该使用-导入它

import spwd

影子密码数据库的属性是-

指数属性和说明
0

sp_nam

用户的登录名或用户名

1

sp_pwd

加密密码

2

sp_lstchg

最后更改日期

3

sp_min

两次更改密码之间的天数最少

4

sp_max

两次更改密码之间的最大天数

5

sp_warn

警告更改密码的天数

6

sp_inact

密码过期后直到帐户被封锁的天数

7

p_expire

从1997年1月1日到帐户被禁用的天数

8

sp_flag

已预留

该模块的一些方法是-

方法spwd.getspnam(name)

此方法将返回给定用户名的影子密码数据库条目。

方法spwd.getspall()

此方法将返回所有可用的影子密码数据库条目。

范例程式码

import spwd
print("Root: " + str(spwd.getspnam('root')) + '\n') #Password detail for root
for entry in spwd.getspall():
    print("Name: " + entry[0] + "\t\tPassword: " + entry.sp_pwdp)

输出结果

(要获得所需的输出,我们应该在sudo模式下运行脚本)

$ sudo python3 example.py
Root: spwd.struct_spwd(sp_namp='root', sp_pwdp='!', sp_lstchg=17778, sp_min=0, sp_max=99999, sp_warn=7, sp_inact=-1, sp_expire=-1, sp_flag=-1)

……..
……..
……..
Name: geoclue        Password: *
Name: gnome-initial-setup        Password: *
Name: gdm        Password: *
Name: unix_user        Password: $6$47n9s0Ep$znWkgNtywebHGKq2o6kZKhGOM8ryp8z4/6P6PUE1m.NQ5Erg9aWncNUAGbuNLFNWUO9M9xzKLxRpFGB5md/nu1
Name: mongodb        Password: !