📜  Python中的 pwd 模块

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

Python中的 pwd 模块

Python中的pwd module提供对Unix 用户帐户和密码数据库的访问。存储在Unix 用户帐户和密码数据库中的每个条目都被报告为一个类似元组的对象,其属性类似于 头文件中定义的passwd 结构的成员。

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

IndexAttributesMeaning
0pw_nameLogin name
1pw_passwdOptional encrypted password
2pw_uidNumerical user ID
3pwd_gidNumerical group ID
4pw_gecosUser name or comment field
5pw_dirUser home directory
6pw_shellUser command interpreter

注意: pwd module是 UNIX 特定的服务。因此,该模块的所有方法仅适用于 UNIX 版本。

pwd module定义了以下三种方法:

  • pwd.getpwuid() method
  • pwd.getpwnam() method
  • pwd.getpwall() method

pwd.getpwuid() 方法 -

Python中的pwd.getpwnam()方法用于获取指定用户 ID 的密码数据库条目。

代码:使用 pwd.getpwuid() 方法

# Python program to explain pwd.getpwuid() method
    
# importing pwd module 
import pwd
  
# User id
uid = 1000
  
# Get the password 
# database entry for the
# specified user id
# using pwd.getpwuid() method
entry = pwd.getpwuid(uid)
  
# Print the retrieved entry
print("Password database entry for user id : % d:" % uid)
print(entry)
  
# User id
uid = 0
  
# Get the password 
# database entry for the
# specified user id
# using pwd.getpwuid() method
entry = pwd.getpwuid(uid)
  
# Print the retrieved entry
print("Password database entry for user id : % d:" % uid)
print(entry)
输出:
Password database entry for user id : 1000
pwd.struct_passwd(pw_name='ihritik', pw_passwd='x', pw_uid=1000, pw_gid=1000,
pw_gecos='Hritik,,, ', pw_dir='/home/ihritik', pw_shell='/bin/bash')

Password database entry for user id : 0
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')

pwd.getpwnam() 方法 -

Python中的pwd.getpwnam()方法用于获取指定用户名的密码数据库条目

代码:使用 pwd.getpwnam() 方法

# Python program to explain pwd.getpwnam() method
    
# importing pwd module 
import pwd
  
# User name
name = "ihritik"
  
# Get the password 
# database entry for the
# specified username
# using pwd.getpwnam() method
entry = pwd.getpwnam(name)
  
# Print the retrieved entry
print("Password database entry for '% s':" % name)
print(entry)
  
  
# User name
name = "root"
  
# Get the password 
# database entry for the
# specified username
# using pwd.getpwnam() method
entry = pwd.getpwnam(name)
  
# Print the retrieved entry
print("\nPassword database entry for '% s':" % name)
print(entry)
输出:
Password database entry for 'ihritik':
pwd.struct_passwd(pw_name='ihritik', pw_passwd='x', pw_uid=1000, pw_gid=1000,
pw_gecos='Hritik,,, ', pw_dir='/home/ihritik', pw_shell='/bin/bash')

Password database entry for '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')

pwd.getpwall() 方法 -

Python中的pwd.getpwall()方法用于获取存储在密码数据库中的所有可用条目的列表。

代码:使用 pwd.getpwall() 方法

# Python program to explain pwd.getpwall() method
    
# importing pwd module 
import pwd
  
# Get the list 
# of all available password
# database entries using
# pwd.getpwall() method
entries = pwd.getpwall()
  
  
  
# Print the list 
print("Password database entries:")
for row in entries:
    print(row)
输出: