zoukankan      html  css  js  c++  java
  • [PY3]——pwd | grp 模块


    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("500"))
    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("0"))
    #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("0"))
    #root
    print(gname_gid("user00"))
    #500
  • 相关阅读:
    百分比布局中的居中
    struts2常用标签详解
    Struts2常用标签总结
    Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法
    Dbutils学习(介绍和入门)
    Ajax与JSON的一些总结
    CURD定义
    java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
    a标签设置高度不生效问题
    使用iframe标签时如何通过jquery隐藏滚动条
  • 原文地址:https://www.cnblogs.com/snsdzjlz320/p/7412752.html
Copyright © 2011-2022 走看看