Centos7 用户与组

一、用户与组介绍

  1、什么是用户?

    用户时操作系统提供的一种安全机制

    用户是权限的化身

  2、为何要有用户?

    划分权限,增强安全性

    每启动一个进程,都会与一个用户关联

      进程 --》 用户 --》 权限(权限作用在文件身上)

  3、查看用户相关信息

    id        查看当前用户信息

    whoami      查看当前用户是谁

    who        查看所有登录的用户

    ps aux | grep [s]sh        每一个进程都有其用户

  4、linux系统的用户角色划分

    linux系统中用户分为管理员和其他用户

    管理员拥有最高权限,其他用户根据管理员的分配拥有不同的权限

    uid 与 gid

      uid :用户id,唯一标识一个系统用户的账号,uid在系统中是唯一的,uid -》身份证号  用户名-》名字

      gid :组id,标识一个组

      

    centos7 系统关于uid的约定:

      0      超级管理员,最高权限

      1~200    系统用户,用来运行系统自带的进程,默认已创建

      201~999   系统用户,用来运行安装的程序,所以此类用户无需登录系统

      1000+    普通用户,可以正常登录到系统的用户,权限较小,能执行的任务有限

  5、root用户

    默认是root用户,其uid、gid均是0,root用户在每台unix/linux操作系统中都是唯一且真实存在的,通过它可以登录系统,可以操作系统中任何文件和命令,拥有最高的管理权限

  6、组的概念

    主组:用户本身所在的组

    附加组:为用户添加的组

    用户与组的关系:

      一对一:一个用户默认在自己的主组下

      一对多:一个用户可以属于多个组,用户只有一个主组,但可以为用户添加多个附加组

      多对多:多个用户可以属于多个组

  总结:

    linux将权限分为了三类:

      属主

      属组

      其他人

 

 

 

 

二、用户与组相关文件

  与用户和组相关的文件:

    /etc/passwd        用户相关

    /etc/shadow        用户相关

    /etc/group          组相关

    /etc/gshadow        组相关

    /home/...          默认的用户家目录

    /var/spool/mail/...        用户mail文件

    

      /etc/passwd

        以:为分隔符,分为七列

        第一字段    用户名

        第二字段    密码(在例子中我们看到x,其实密码被映射到/etc/shadow文件中

        第三字段    uid

        第四字段    gid

        第五字段    描述信息(可为空)

        第六字段    用户家目录所在的位置

        第七字段    用户登录后第一个启动的程序,通常为shell

 

      /etc/shadow

        以:为分隔符,分为九列(可使用man shadow查看详细信息)

        第一字段    用户名

        第二字段    密码(密文,!!表示没有密码,x表示这个用户不能登录到系统,这个字段是非空的)

        第三字段    上次修改密码的时间(这个时间是从1970-1-1到上次修改口令的天数)

        第四字段    两次修改密码的最小间隔天数(若为0则表示禁用此功能)

        第五字段    两次修改密码的最大间隔天数(此项能增强用户口令的时效性)

        第六字段    提前多少天提醒用户密码即将过期

        第七字段    密码过期多少天后禁用此用户

        第八字段    用户过期日期(此字段指定了用户作废的天数(从1970-1-1开始的天数)若此项为空,则账户永久可用)

        第九字段    保留字段

 

      /etc/group

        以:为分隔符,分成四列

        第一字段    用户组的名称

        第二字段    用户组的密码占位符

        第三字段    用户组的gid

        第四字段    显示该用户组作为哪些用户的附加组,多个用逗号分隔

 

      /etc/gshadow

        以:为分隔符,分成四列

        第一字段    用户组的名称

        第二字段    用户组密码(可以为空或!,表示没有密码)

        第三字段    用户组管理者(可以为空,如果有多个用户组管理者,用,分割)

        第四字段    显示该用户组作为哪些用户的附加组,多个用,分割

      /etc/skel/...          用户家的模板

      /home/...           用户的家目录

      /var/spool/mail/...       用户的邮箱文件

 

 

 

 

 

三、用户管理命令:

  useradd      添加用户

  userdel      删除用户

  usermod      修改用户信息

 

  1、创建用户

    useradd df      创建名为df的用户

 

 

  2、查看用户

    id df          查看名为df的用户

    who          查看所有登录用户的信息

    whoami        查看当前登录的用户名

 

 

  3、删除用户

    userdel df        删除用户,但不删除用户家目录和mail

    userdel -r df        使用-r命令,删除更加彻底

 

   4、useradd命令详解

    -u      指定用户的uid

    -g      指定用户所属的主组

    -G      指定用户所属的附加组

    -d      指定用户的家目录

    -c      指定用户的备注信息

    -s      指定用户使用的shell

    -e      修改过期时间

    -m      不创建家目录(系统账户一般不配备家目录)

    -r      创建系统账户,uid处于系统用户范围内,默认没有家目录

  5、usermod命令

    与useradd命令的参数基本一致,只不过useradd是添加用户,usermod是修改

    -u      修改指定用户的uid

    -g      修改指定用户的主组

    -a      将用户添加到附加组,仅与-G参数一起使用

    -G      修改指定用户的附加组,多个使用,隔开,覆盖原有附加组

    -d      修改指定用户的家目录

    -c      修改指定用户的注释信息

    -s      修改指定用户的bash shell

    -m      将用户的主目录移动到新位置,如果当前主目录不存在,则不创建新的主目录

    -l      修改指定用户的用户名

    -L      锁定指定的用户

    -U      解锁指定的用户

  6、设置于修改密码

    passwd    默认给当前用户设置密码

    passwd + 用户名    给指定用户设置密码(root用户可以给自己及其他用户设置密码,普通用户只能给自己设置密码)

    echo "密码" | passwd --stdin 用户名    非交互式设置密码

      #ps

       可以使用系统内置变量生成随机字符串

        echo $RANDOM | md5sum | cut -c 1-10

 

        useradd命令的参考文件

          /etc/login.defs

          /etc/default/useradd      可以使用useradd -D查看

          /etc/skel/...

 

 

 

 

四、组管理

  1、组管理命令

    groupadd    添加组

    groupmod    修改组

    groupdel    删除组

     gpasswd      设置组密码

    newgrp      切换主组(临时切换到该组下,获取相应的权限)

 

  2、创建组

 

   3、修改组

 

   4、删除组

    如果一个组是用户的主组,那么改组不能被删除,删除用户会默认一起删除他的主组

 

   5、组成员管理

    对于用户来说,组分为两类:

      1、主组,用户只能又一个主组,可以通过-g指定,如未指定则常见一个默认的主组(于用户名同名)

      2、附加组,主组不能满足授权需求,创建附加组,将用户加入该组,用户可以属于多个附加组,加入一个组后就拥有了改组的权限

 

     我们可以为组设置密码,然后让一些非组成员通过newgrp命令临时切换到组内并输入密码获取组用户的权限

 

 

 

 

 

 

五、手动创建用户

  1、/etc/passwd

 

   2、/etc/shadow

 

   3、/etc/group

 

   4、/etc/gshadow

 

   5、创建用户家目录,并用模板装修一下,注意权限

 

   6、/var/spool/mail/df  用户邮箱文件

 

   7、账户登录测试

 

 

PS:制作密码

  openssl passwd 选项 密码

    选项:

      -1    表示使用的是md5加密算法

      -salt    指定salt值,不使用随机产生的salt,(在使用加密算法进行加密时,即使密码一样,salt不一样,所计算出来的hash值也不一样;除非密码一样,salt也一样,计算出来的hash值才一样,salt值为8字节的字符串)

 

posted @ 2020-10-28 21:14  大胡萝卜没有须  阅读(547)  评论(0)    收藏  举报