📜  Python中的spwd模块

📅  最后修改于: 2022-05-13 01:54:22.285000             🧑  作者: Mango

Python中的spwd模块

Python中的spwd module提供对Unix 影子密码数据库的访问。存储在数据库中的条目是类似元组的对象,其属性类似于 头文件中定义的spwd 结构的成员。

以下是元组对象的属性,它表示存储在Unix 影子密码数据库中的条目:

IndexAttributesMeaning
0sp_nampLogin name
1sp_pwdpEncrypted password
2sp_lstchgDate of last change
3sp_minMinimal number of days between changes
4sp_maxMaximum number of days between changes
5sp_warnNumber of days before password expires to warn user about it
6sp_inactNumber of days after password expires until account is disabled
7sp_expireNumber of days since 1970-01-01 when account expires
8sp_flagReserved

Python中的spwd module定义了以下两种方法:

  • spwd.getspnam() method
  • spwd.getspall() method

注意: spwd模块是 UNIX 特定的服务。因此,该模块的所有方法仅在 UNIX 版本上可用。

spwd.getspnam() 方法 -

Python中的spwd.getspnam()方法用于获取存储在 Unix 影子密码数据库中的指定用户名的条目。
此方法要求用户有足够的权限来访问影子密码数据库。如果用户没有足够的权限,将引发PermissionError异常。

代码: spwd.getspnam()方法的使用

# Python program to explain spwd.getspnam() method
    
# importing spwd module 
import spwd
  
# User name
name = "ihritik"
  
# Get the shadow password
# database entry for the
# specified user name
# using spwd.getspnam() method
entry = spwd.getspnam(name)
  
# Print the retrieved entry
print("Shadow password database entry for the user name '%s':" %name)
print(entry)
  
# User name
name = "root"
  
# Get the shadow password
# database entry for the
# specified user name
# using spwd.getspnam() method
entry = spwd.getspnam(name)
  
# Print the retrieved entry
print("\nShadow password database entry for the user name '%s':" %name)
print(entry)

输出:
os.getspnam() 方法输出

spwd.getspall() 方法 -

Python中的spwd.getspall()方法用于获取存储在影子密码数据库中的所有可用条目。此方法还要求用户具有足够的权限来访问影子密码数据库。

代码: spwd.getspall()方法的使用

# Python program to explain spwd.getspall() method
    
# importing spwd module 
import spwd
  
# Get the all available 
# shadow password database entries
# using spwd.getspall() method
entries = spwd.getspall()
  
  
# Print the retrieved entries
print("Shadow password database entries:")
for row in entries:
    print(row)
输出: