Linux常用命令学习8---(用户和用户组管理)

时间:2021-04-24 15:08:47

1.用户和用户组

    用户和用户组概念
        用户:使用操作系统的人(Linux支持多个用户在同一时间登陆同一个操作系统)
        用户组:具有相同权限的一组用户(Linux系统中可以存在多个用户组)

    相关的配置文件
        /etc/group:储存当前系统中所有用户组信息
            Group:        x        :    123        :    abx,def,xyz
            组名称:    组密码占位符:    组编号    :    组中用户列表
            1.在linux中,root用户组的编号一定是0
            2.组号1~499是系统预留的组编号,一般是预留给安装在这个操作系统中的软件或服务的,比如在服务器上安装了MySQL数据库,那么就会自动的带用户组的列表中创建一个叫做mysql的用户组,并且在1~499中拿一个编号来用,越早安装分配的组号越小
            3.用户手动创建的用户组的组号是从500开始的
        /etc/gshadow:存储当前系统中用户组的密码信息
               Group:        *        :            :    abx,def,xyz
            组名称:    组密码     :     组管理者:    组中用户列表
        /etc/passwd:存储当前系统中所有用户的信息
            user    :   x           :   123     :   456     :   xxxxx       :   /home/user  :   /bin/bash
            用户名 :   密码占位符  :用户编号   : 用户组编号: 用户注释信息: 用户主目录    :  shell类型
            root的用户编号一定是0
        /etc/shadow:存储用户密码的文件(一般密码是被一种单向加密方法加密的,所以看到的不是原始的密码)
            user    :   vf;/Zushs.. :   :   :   :   :   :
            用户名 :   密码       :  :   :   :   :   :

    用户组管理的命令
        groupadd groupname  :创建新的用户组名
        groupmod -n newname oldname :将用户组名由oldname改为newname
        groupmod -g 668 groupname   :将groupname组编号改为 668
        groupadd -g 888 groupname   :创建用户组groupname,并且设置组编号为 888
        groupdel groupname  :删除用户组 groupname
            在删除用户组之前应该首先删除用户组中的用户,否则用户的配置文件中的关于用户组的信息就和真实情况不符合了,这些用户就会变成“黑户”,在后续的使用中可能就会受到权限的影响
        gpasswd groupname   :更改groupname用户组的组密码

    用户管理的命令
        useradd -g groupname username   :创建新用户username,并且该用户放到用户组groupname中
        useradd -d /home/test username  :在创建用户username时,显式指定他的个人文件夹为/home/test,若不显式指定,会默认使用/home/username文件夹
                这个时候没有指定用户的用户组,系统就会默认创建一个和新用户名相同的用户组,并将该用户放到该用户组下
        usermod -c 备注内容 username   :为用户username修改备注信息
        usermod -l newname oldname  :将oldname用户改名为 newname
        usermod -g groupname username   :将username用户切换到 groupname用户组
        userdel username    :删除username用户,但是这样并不会删除他的个人文件夹和其中的文件
        userdel -r username :删除username用户,并且删除他的个人文件夹

    假如某一天维护系统,不想让某些用户登陆
        在/etc/目录下创建文件nologin(空文件即可,不需要内容),就可以实现除了user之外的用户都不能等陆系统

    锁定和解锁账户
        passwd -l  username :锁定用户username,防止用户删除自己的文件
        passwd -u username  :解锁username用户
        passwd -d username :清除username帐号,是这个用户可以无密码登陆

    主要组和附属组
        一个用户可以同时属于多个用户组(其中只有一个是这个用户的主要组,其他的都是这个用户的附属组)
        相关的知识和命令目前几乎用不到,所以暂时不进行深入的学习
        gpasswd -a username newgroup1,newgroup2    :为username账户添加到附属组newgroup1和newgroup2
            区分于usermod -g groupname username :这个命令修改的是用户的主要组,而不是附属组
        gpasswd -d username newgroup1,newgroup2    :为username账户删除附属组newgroup1和newgroup2
        useradd -g group -G newgroup1, newgroup username :在创建用户username的时候为用户添加主要组group,并添加附属组groupname1和groupname2

    切换用户
        su username :从当前用户切换到username用户(如果没有username,就相当于切换到root用户)
            从普通用户切换到其他用户时需要用户密码;但是从root切换到任何用户都不需要密码

    id username命令
        显示指定用户信息,包括用户编号、用户名
        主要组编号及名称,附属组列表

    groups username命令
        显示username用户所在的所有组

    chfn username命令
        设置用户资料,依次输入用户资料(生日、性别……资料)

    finger username命令
        显示用户详细资料(和chfn命令对应)