linux 用户管理基本知识:


linux用户:

    UID范围:0-65535

        uid为0对应root

        uid为1-499(centos 6)或者1-999(centos 7)为系统用户

        uid为500以上(centos 6)或者1000以上(centos)为登录用户

    

    GID范围:0-65535

        gid为0对应管理员组

        gid为1-499(centos 6)或者1-999(centos 7)为系统用户组

        gid为500以上(centos 6)或者1000以上(centos)为登录用户组


        用户的组又分基本组和附加组


    用户配置文件:

        /etc/passwd:用户名、UID、基本组等信息

        /etc/group:组名、GID、组内包含的用户;

        /etc/shadow:用户密码及相关属性;

        /etc/gshadow:组的密码及相关属性;


        /etc/passwd分析:

            name:password:UID:GID:GECOS:directory:shell

            登录名:x:UID:GID:用户评论:用户主目录:用户默认shell   

            具体信息可以man 5 passwd即可查看

    

        /etc/shadow分析:

            login name:encrypted password:date of last password change:minimum password age:maximum password age:password warning period:password inactivity period:account expiration date:reserved field

            登录用户名:用户加密密码:最后一次密码修改时间(该数据是从1970年1月1日开始的天数,注意单位是天):口令不可被更动的天数(与前一个字段相比,只有满足了最小密码时间期限,用户才能修改密码):最大密码期限(密码最大期限,到了最大期限,用户必须要修改密码):密码警告时间(当密码快到期多少时间之前,给用户发送个密码快过期警告信息):密码非活动期限(当密码已经过期,允许用户再修改密码的期限):账号过期期限(账号过期的期限,一旦过期,该账号就不允许在登录,而密码过期只是该账号不能使用那个密码):暂定字段


    /etc/group分析:

            group_name:password:GID:user_list

            组名:群组口令(通常不需要配置,这个配置通常是给『群组管理员』使用的,目前很少有这个机会配置群组管理员啦! 同样的,口令已经移动到 /etc/gshadow 去,因此这个字段只会存在一个『x』而已):GID:此群组支持的账号名称(我们知道一个账号可以加入多个群组,那某个账号想要加入此群组时,将该账号填入这个字段即可。 举例来说,如果我想要让 dmtsai 也加入 root 这个群组,那么在第一行的最后面加上『,dmtsai』,注意不要有空格, 使成为『 root:x:0:root,dmtsai 』就可以啰~)


    /etc/gshadow分析:

            group_name:encrypted password:administrators:members

             组名:加密密码:组管理员(能改变组的密码,用逗号分隔的列表):成员(用逗号分隔的用户列表)


      

 linux 用户命令       

        

    useradd

        选项与参数:

            -u UID:直接指定uid号

            -g GID:指定用户组(该用户组要事先存在)

            -r: 创建系统用户

            -c 'COMMENT'

            -d /PATH/TO/SOMEWHERE:指定用户的主目录路径;此位置不能事先存在,否则,其用户相关配置文件将被复制;/etc/skel

            -s SHELL:设定用户的默认shell

            -G GID,...:指定所属的附加组

            -M:不会给用户创建家目录


    groupadd

        选项与参数:

            -r:指定系统组

            -g GID:指定组ID


练习:创建用户Oracle,所属附加组database和sql,ID号为3000, 家目录为/home/database;

    解答:

            1.groupadd database

            2.groupadd mysql

            3.useradd -G database,sql -u 3000 -d /home/database Oracle

    

    id: 查看用户相关的id信息

        选项与参数:

            -u:只展示用户id

            -g:只展示组id

            -G: 只展示组id以及附加组id


    su: switch user, 切换用户或以其它用户的身份执行命令        

        切换方式:

            su USERNAME: 非完全切换;非登录式切换(还会使用之前用户的环境变量)

            su - USERNAME或su -l USERNAME: 完全切换;登录式切换


    usermod:用户属性修改

        选项参数(基本与useradd一致)

            -u UID:直接指定uid号

            -g GID:指定用户组(该用户组要事先存在)

            -G GID[,GID,...]:修改用户所属的附加组;同时使用之前的附加组使用-a选项;

            -s SHELL

            -c 'COMMENT'

            -d HOME: 修改用户的家目录为新位置时,用户原来的文件是不会被移动至新家;-m选项可实现同时将其迁至新的家目录;

            -l LOGIN

            -L:lock user(锁定用户)

            -U: unlock user(解锁用户)


    passwd: 给用户添加密码

            选项参数:

                -l: lock user

                -u: unlock user

                --stdin:从标准输出接收用户密码

                    举例:echo 'centos' | passwd --stdin centos


    userdel:删除用户

            选项参数:

                -r:删除用户的同时删除家目录


    groupmod:组属性修改

            选项参数:

                -n GROUP_NAME:修改组名

               -g GID:修改组ID


    gpasswd:设定组密码


    newgrp:切换基本组为指定的组


    chage:修改用户账号及密码的属性