Linux系统中管理用户账户和组账户及其权限设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统中管理用户账户和组账户及其权限设置相关的知识,希望对你有一定的参考价值。

用户账户分为:超级用户、系统用户、普通用户。

    超级用户:

                用户名:root  ; UID:0;

    系统用户:

                用户名:由用户自行设定; UID:1~499(Centos6及之前),1~999(Centos7);

    普通用户:

                用户名:由用户自行设定; UID:500+(Centos6及之前),1000+(Centos7);


用户配置文件:用户解析库、用户认证库。

    用户解析库:/etc/passwd

    用户认证库:/etc/shadow

        /etc/passwd字段详解:(字段间使用":"分隔)

            root:x:0:0:root:/root:/bin/bash

            第一字段:用户名称

            第二字段:使用X做密码占位符

            第三字段:用户UID

            第四字段:用户主要组的GID

            第五字段:用户主要组组名

            第六字段:用户家目录

            第七字段:用户默认bash

        /etc/shadow字段详解:

            root:$6$6kkn6aL6.uXXGiV9$Z1rLH/FLESIInB.V1TfCn9V/AhDlQMQIwOKwpxdk4h101tB6SdUv6USEIccF2XNcR.kpUuQE6x4HbSed24bNP.::0:99999:7:::

            第一字段:用户名称

            第二字段:经过加密的用户密码;主要由 加密算法+salt(盐)+加密后的密码  组成期间由"$"分隔;

            第三字段:最后一次修改密码的时间,其表示法为从1970年1月1日到当前系统时间所经过的天数;

            第四字段:密码的最短使用期限;0表示随时可更改密码;

            第五字段:密码的最长使用期限;

            第六字段:密码使用达到最大使用期限前多少天提示用户;默认为7天;

            第七字段:密码过期后可更改密码宽限期;

            第八字段:用户密码的绝对失效时间;其表示法为从1970年1月1日到指定日期时间的天数; usermod  -e   可修改;

            第九字段:保留,并未使用;

用户账户管理相关命令:
        useradd  --  创建一个新用户或更新默认新用户信息

            格式:useradd  [options]  USERNAME

        常用选项:

            -d, --home-dir HOME_DIR:指定新建用户的家目录;

            -g, --gid GROUP:指定新建用户的主要组;GROUP可使用组名或GID;如不使用此选项默认会创建同名组设置为主要组;

            -G, --groups GROUPS:指定新建用户的附加组;GROUP可使用组名或GID;

            -r, --system :创建一个系统用户;

        userdel --  删除用户账户和相关文件

            格式:userdel  [options]  UESRNAME

        常用选项:

            -f, --force :强制删除用户,即使用户正处于登陆状态等情况;(不建议使用)

            -r,--remove :用户主目录中的文件将随用户主目录和用户邮箱一起删除。

        usermod  --  修改一个用户账户

            格式:usermod   [options]  USERNAME

        常用选项:

            -d, --homeHOME_DIR:更改用户的家目录;(前提修改的目录事先存在)

            -c, --commentCOMMENT:修改用户注释信息;

            -e  expire-date:修改用户密码过期的绝对日期;

            -l, --loginNEW_LOGIN:修改用户的登陆名;
            -s, --shellSHELL:修改用户的登陆SHELL;
            -u, --uidUID:修改用户的UID;

            -g, --gidGROUP:修改用户主要组;

            -G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]:修改用户附加组;可使用-aG为用户追加附加组;

            -L,--lock:锁定用户;

            -U,--unlock:解锁用户;

        passwd  --  更新用户的身份验证令牌

            格式:passwd  [options] USERNAME

        常用选项:

            -d, --delete :删除用户的密码;(仅限 root 用户)

            -l, --lock :锁定指名帐户的密码(仅限 root 用户)
            -u, --unlock解锁指名账户的密码(仅限 root 用户)

            --stdin :  从标准输入读取令牌(仅限 root 用户)



组账户分为:超级用户组、系统组、普通用户组。

    超级用户组:

                组名:root;GID:0;

     系统用户组:

                组名:由用户自行设定; GID:1~499(Centos6及之前),1~999(Centos7);

    普通用户组:

               组名:由用户自行设定; GID:500+(Centos6及之前),1000+(Centos7);


组账户配置文件:组账户认证库,组账户解析库。

    组账户解析库:/etc/group        

    组账户认证库:/etc/gshadow

        /etc/group字段详解:

            root:x:0

            第一字段:组名

            第二字段:密码占位符;

            第三字段:GID

            第四字段:以该组为附加组的用户;

        /etc/gshadow字段详解:

            root:::

            第一字段:组名;

            第二字段:组账户加密保存的密码;

            第三字段:组账户管理员(已废弃)

            第四字段:以该组为附加组的用户账户列表;


         groupadd  --  创建一个新组

            格式:groupadd  [options]  GROUPNAME

        常用选项:

            -g, --gid GID:指定该组的GID;

            -r, --system:将新建的组设置为系统组;

        

        groupdel  --  删除一个组

            格式:groupdel  [options]  GROUPNAME


        groupmod  --  修改组账户信息

            格式:groupmod  [options]  GROUPNAME

        常用选项:
            -g, --gid GID:修改GID

            -n, --new-name NEW_GROUP:修改组名;


        su  --  切换用户身份

            格式:su [options] USERNAME

        常用选项:

            -, -l, --login:切换登陆用户及其shell,家目录等一系列选项;

            -c :使用某用户身份执行某命令:(#] su  root  -c "usseradd  god")

        注意:su USERNAME  与  su   -USERNAME  区别在于 前者只是切换了身份,但SHELL环境仍然是原用户的SHELL;而后者连用户和SHELL环境一起切换成新用户的了。只有切换了SHELL环境才不会出现PATH环境变量错误。


        id  --  显示真实和有效的 UID 和 GID

            格式:id  [options]  USERNAME

        常用选项:

            -u:显示用户有效UID
            -g:显示用户有效GID
            -n:显示名称


其他相关配置文件:
    /etc/default/useradd
    作用:定义创建用户时的用户属性的默认值文件
    GROUP=100 // 在创建用户时如果没有为用户指定基本组,系统会为用户指定一个与用户名相同的组作为其基本组;
    HOME=/home // 在创建用户时,如果没有为用户指定家目录,则会在/home目录中创建一个于用户名相同的目录作为家目录
    INACTIVE=-1 // 在创建用户时,设定用户密码过期之后的宽限期,默认为-1,意为关闭用户密码过期宽限功能,即宽限期为永远;
    EXPIRE=  // 在创建用户时,设定用户密码的绝对失效日期,默认没有启用;
    SHELL=/bin/bash // 在创建用户时,设定用户的默认登陆shell,默认值为/bin/bash
    SKEL=/etc/skel // 在创建用户时,为用户家目录提供的默认文件的模板
    CREATE_MAIL_SPOOL=yes // 在创建用户是,是否直接为用户创建邮箱文件,默认创建;


    /etc/login.defs(definations)
    作用:定义shadow_utils相关的属性,包括用户邮箱路径、密码的时间参数、UID和GID的范围,删除用户账户的命令、是否设置私有组(仅包含一个用户并作为该    用户主要组)、权限位掩码、家目录创建开关、加密算法选择;
    MATL_DIR        /var/spool/mail
    //指定创建用户时为用户指定邮箱文件的路径
    PASS_MAX_DAYS 99999
    PASS_MIN_DAYS 0
    PASS_MIN_LEN  5
    PASS_WARN_AGE 7
    //与密码的时间参数有关的设置
    UID_MIN                  1000
    UID_MAX                 60000
    # System accounts
    SYS_UID_MIN               201
    SYS_UID_MAX               999
    GID_MIN                  1000
    GID_MAX                 60000
    # System accounts
    SYS_GID_MIN               201
    SYS_GID_MAX               999
    //指定默认的ID选择范围
    CREATE_HOME yes
    //是否在创建用户时为用户创建家目录的开关
    UMASK           077
    //指定用户家目录的默认权限的掩码
    USERGROUPS_ENAB yes
    //是否开启私有组开关
    ENCRYPT_METHOD SHA512
    //加密算法的选择


    /etc/skel(directory)
    作用:为新创建的用户的家目录提供默认的shell配置文件



以上是关于Linux系统中管理用户账户和组账户及其权限设置的主要内容,如果未能解决你的问题,请参考以下文章

Linux用户和组管理

账户和权限管理

Linux初学之——用户和组的管理

用户和组的管理

用户和组账户的管理

No.22 用户账号管理和组账号管理