Python 中的 ***spwd 模块*** 让我们能够访问 Unix 影子密码数据库。在这个数据库中,条目被存储为类似于元组的对象,其属性与 头文件中定义的 spwd 结构体 的成员非常相似。
下表列出了这个类似于元组的对象的属性,它们代表了存储在 Unix 影子密码数据库 中的条目信息:
属性
—
sp_namp
sp_pwdp
sp_lstchg
sp_min
sp_max
sp_warn
sp_inact
sp_expire
sp_flag
Python 中的 ***spwd 模块*** 为我们定义了以下两个方法:
***spwd.getspnam() 方法******spwd.getspall() 方法***
注意: ***spwd*** 模块是 UNIX 特有的服务。因此,该模块的所有方法仅在 UNIX 版本的系统上可用。
## `*spwd.getspnam() 方法 -*`
Python 中的 `***spwd.getspnam()***` 方法主要用于获取指定用户名在 Unix 影子密码数据库中存储的条目。
使用此方法需要用户拥有足够的权限来访问影子密码数据库。如果用户没有足够的权限,将会引发 *PermissionError* 异常。
> **语法:** spwd.getspnam(name)
>
> **参数:**
> **name:** 一个字符串值,表示需要查询影子密码数据库条目的用户名。
>
> **返回类型:** 该方法返回一个类 ‘spwd.struct_spwd‘ 的元组式对象,表示与指定用户名关联的影子密码数据库条目。
**代码:** 使用` spwd.getspnam()` 方法
Python3 1==
`
目录
Python 程序解释 spwd.getspnam() 方法
导入 spwd 模块
import spwd
用户名
name = "ihritik"
使用 spwd.getspnam() 方法
获取指定用户名的
影子密码数据库条目
entry = spwd.getspnam(name)
打印获取到的条目
print("Shadow password database entry for the user name ‘%s‘:" %name)
print(entry)
用户名
name = "root"
使用 spwd.getspnam() 方法
获取指定用户名的
影子密码数据库条目
entry = spwd.getspnam(name)
打印获取到的条目
print("
Shadow password database entry for the user name ‘%s‘:" %name)
print(entry)
`
**输出:**

*spwd.getspall() 方法 -*
Python 中的 ***spwd.getspall()*** 方法主要用于获取影子密码数据库中所有可用的条目。该方法同样要求用户拥有足够的权限来访问影子密码数据库。
> 语法: spwd.getspall()
>
> 参数: 不需要参数。
>
> 返回类型: 该方法返回一个类 ‘spwd.struct_spwd‘ 的元组式对象列表,其元素代表影子密码数据库的各个条目。
代码: 使用 spwd.getspall() 方法
Python3 1==
CODEBLOCK_c7e8168e
输出:
> Shadow password database entries:
> spwd.structspwd(spnamp=‘root‘, sppwdp=‘!‘, splstchg=17677, spmin=0, spmax=99999, spwarn=7, spinact=-1, spexpire=-1, spflag=-1)
> spwd.structspwd(spnamp=‘daemon‘, sppwdp=‘*‘, splstchg=17536, spmin=0, spmax=99999, spwarn=7, spinact=-1, spexpire=-1, spflag=-1)
> spwd.structspwd(spnamp=‘bin‘, sppwdp=‘*‘, splstchg=17536, spmin=0, spmax=99999, spwarn=7, spinact=-1, spexpire=-1, spflag=-1)
> spwd.structspwd(spnamp=‘sys‘, sppwdp=‘*‘, splstchg=17536, spmin=0, spmax=99999, spwarn=7, spinact=-1, spexpire=-1, spflag=-1)
> spwd.structspwd(spnamp=‘sync‘, sppwdp=‘*‘, splstchg=17536, spmin=0, spmax=99999, spwarn=7, spinact=-1, spexpire=-1, spflag=-1)
> spwd.structspwd(spnamp=‘games‘, sppwdp=‘*‘, splstchg=17536, spmin=0, spmax=99999, spwarn=7, spinact=-1, spexpire=-1, spflag=-1)
> spwd.structspwd(spnamp=‘man‘, sppwdp=‘*‘, splstchg=17536, spmin=0, spmax=99999, spwarn=7, spinact=-1, spexpire=-1, spflag=-1)
> spwd.structspwd(spnamp=‘lp‘, sppwdp=‘*‘, splstchg=17536, spmin=0, spmax=99999, spwarn=7, spinact=-1, spexpire=-1, spflag=-1)
> spwd.structspwd(spnamp=‘mail‘, sppwdp=‘*‘, splstchg=17536, spmin=0, spmax=99999, spwarn=7, spinact=-1, spexpire=-1, spflag=-1)
> spwd.structspwd(spnamp=‘news‘, sp_st