pwd和grp模块都非常简单粗暴,各自分别下面都只有三个函数,来根据/etc/passwd、/etc/group文件获取相关信息


getpwuid(UID):根据UID获取用户信息,返回一个list

print(pwd.getpwuid(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')

print(pwd.getpwuid(0).pw_name)
root print(pwd.getpwuid(0).pw_shell)
/bin/bash

getpwnam(用户名):根据用户名获取用户信息,返回list

print(pwd.getpwnam("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')

getpwall():获取所有用户的信息,返回一个list

for i in pwd.getpwall():
print(i)

getgrgid(GID):根据GID获取用户组的信息,返回一个list

print(grp.getgrgid(""))
grp.struct_group(gr_name='user00', gr_passwd='x', gr_gid=500, gr_mem=[])

getgrnam("组名"):根据用户组名获取用户组的信息,返回一个list

print(grp.getgrnam("user00"))
grp.struct_group(gr_name='user00', gr_passwd='x', gr_gid=500, gr_mem=[])

getgrall( ):获取所有用户组的信息,返回一个list

for i in grp.getgrall():
print(i)

自定义uid<—>uname,gid<—>gname转换的函数

在某些场景中我们可能会需要用到这样的转换

def uname_uid(str):
if str.isdigit():
return pwd.getpwuid(int(str)).pw_name
else:
return pwd.getpwnam(str).pw_uid print(uname_uid(""))
#root
print(uname_uid("user00"))
#500
import grp
def gname_gid(str):
if str.isdigit():
return grp.getgrgid(int(str)).gr_name
else:
return grp.getgrnam(str).gr_gid print(gname_gid(""))
#root
print(gname_gid("user00"))
#500

最新文章

  1. redux-amrc:用更少的代码发起异步 action
  2. Python单元测试框架之pytest -- fixtures
  3. PHP站内搜索:多关键字、加亮显示
  4. java int和String类型之间的相互转换
  5. MyBatis(3.2.3) - Configuring MyBatis using XML, typeAliases
  6. 【转】Qt使用自带的windeployqt 生成exe来发布软件
  7. AABB包围盒、OBB包围盒、包围球的比較
  8. IT English Collection(16) of Message
  9. C++数据结构之二叉树
  10. 十一:Java之GUI图形Awt和Swing
  11. CodeForces 698B Fix a Tree
  12. 网络IO模型
  13. [Servlet&amp;amp;JSP] 初识ServletContext
  14. 【也许CTO并不是终点开篇】CTO也只不过是CTO罢了
  15. Django合集
  16. mysql 主主+ Keepalived 高可用
  17. TensorFlow中的并行执行引擎——StreamExecutor框架
  18. Java如何对List集合的操作方法(二)
  19. Android中控制Dialog呈现的时间
  20. Python.Flask.0

热门文章

  1. D - How Many Tables (并查集)(水题)
  2. 【timeisprecious】【JavaScript 】JavaScript String 对象
  3. poj 3133 Manhattan Wiring
  4. (四)SSO之CAS框架单点登录,自定义验证登录方式
  5. [Swift实际操作]七、常见概念-(14)使用UIColor设置界面组件的颜色属性
  6. winserver2008安装tomcat+mysql+httpd+redis环境
  7. numpy 常用方法2
  8. python 开发工具IDE pycharm的破解版安装
  9. saltstack 动态pillar实现
  10. FlowPortal-BPM——创建新模块