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: !

更新于:2019年7月30日

234 次查看

启动你的职业生涯

完成课程获得认证

开始
广告