1. 用户认证

    用户使用账户登入Linux系统时,系统要对该账户进行3A认证,确实账户的身份,进行授权并且进行行为的审计

    3A: Authentication 认证  Authorization 授权  Accounting/Audition 审计

  2. 用户及组的分类

       系统管理员: root 0 

       普通用户:  1-65535

         系统用户:1-499(centos6)  1-999(centos7)

         登录用户:500+(centos6)   1000+(centos7)

    用户组与权限管理的理解及切换用户相关命令使用_命令

    用户组与权限管理的理解及切换用户相关命令使用_命令_02

                 图1-1 Centos6

        管理员组: root 0

        普通组:

            系统组:1-499(centos6) 1-999(centos7)

            普通组:500+(centos6)  1000+(centos7)

    用户组与权限管理的理解及切换用户相关命令使用_命令_03

    用户组与权限管理的理解及切换用户相关命令使用_管理_04

                 图1-2 Centos7

  3. Linux组的类别

      用户的主组:

        用户必须属于一个且只有一个主组

        组名与用户名相同,且仅包含一个用户,私有组


    用户组与权限管理的理解及切换用户相关命令使用_命令_05

            图2-1 用户的主组

     

     用户的辅助组:

        一个用户可以属于零个或多个辅助组

    用户组与权限管理的理解及切换用户相关命令使用_命令_06          

              图2-2 用户的辅助组


  4. 用户与组的相关配置文件

      a./etc/passwd:用户及其属性信息

    用户组与权限管理的理解及切换用户相关命令使用_用户_07

                   图3-1 passwd文件

       passwd文件组成部分:

       username:password:uid:gid:gecos:homedirectory:shell

       用户名:密码:UID:GID:注释信息:家目录:默认使用的shell

       注:在以前的较早版本中,密码是存放在此文件中,采用md5加密,任何可以读到该文件的用户都可以看到加密的密码,随着技术的发展,md5加密已经不再安全,所以之后的版本都将password加密密码数据用x表示,真实的存放地址转移到shadow文件中并且密码的加密也采用了更加复杂的sha512加密,并且设置了严格的权限,加强了系统的安全性。


    b./etc/shadow:用户密码存放信息 用户组与权限管理的理解及切换用户相关命令使用_用户_08                     图3-2 shadow文件

    shadow文件组成部分:

    name:password:lastday:minday:maxday:warnday:inactiveday:expirationday:

    用户名:密码:最后修改时间:最小时间:最大时间:警告时间:不活跃时间:失效时间:保留字段 

   用户组与权限管理的理解及切换用户相关命令使用_命令_09

           图3-3 password时间线

   注:shadow文件又称影子文件,普通用户是没有权限进行查看的,只有管理员root(uid=0)才有权限查看,密文密码以$进行分割,第一个数字表示采用的哪种加密算法,如6表示采用的sha512加密算法,第二个$表示salt,即随机数,这样可以防止通过一样的密文推算出密码,加了salt,即使是同样的密码,也会因为随机数的原因,产生不一样的加密密文,加强了密码的安全性,后面的参数是对密码有效期,过期期限及警告时间等等的设置。


   c./etc/group:用户组的相关属性

  用户组与权限管理的理解及切换用户相关命令使用_命令_10

        图3-4 group文件

   group文件的组成部分:

   groupname:password:gid:userlist

   组名:密码:组id:成员列表

   注:组文件类似于passwd文件,不过该文件是用来存放组数据的,它包含了四部分,组名-密码-gid-成员列表。出于与passwd一样安全性的考虑,组密码也不存放在该文件中,用x表示,成员列表记录的是以此组作为辅助组的用户,所以成员列表中可以存在多个用户帐号。


  d./etc/gshadow:组密码及其相关属性

  用户组与权限管理的理解及切换用户相关命令使用_管理_11

         图3-5 gshadow文件

   gshadow文件组成部分

   group name:encrypted password:administrator:userlist

   组名:加密密码:组管理员:组中成员

   注:gshadow文件是用来存存放组密码的文件,也是采用的sha512加密算法进行的加密,这边不建议为组设置组密码,以保证它的安全性,当为组设置了密码后,组外的成员想进入到组时,系统就会提示输入密码,当其他用户从其他渠道获取了组密码时,就可以进入到组中,获取组中的数据和权限,但如果不为组设置密码,组外用户想进入该组时就会变得相对困难,因为系统不会提示要输入密码的相关信息,用户没有了输入密码的机会,就无法通过密码进入到组中。组成员是以此组作为辅助组的零个或多个用户帐号。


5. 用户和组管理命令

   1.用户管理命令

   1.1 useradd:添加用户     用户组与权限管理的理解及切换用户相关命令使用_管理_12                      图4-1 useradd帮助手册

   useradd是一个系统管理命令,用来创建新的用户或者更新新用户信息,下面是它的相关选项:

   -u 指定UID,默认定义在/etc/login.defs

 用户组与权限管理的理解及切换用户相关命令使用_管理_13

          图4-2 login.defs文件

   -o 配合-u选项,不检查UID唯一性

   -g GID 指明用户所属的基本组,可以是组名,也可以是GID

   -c 用户的注释信息

   -d 用户的家目录路径

   -s 指定用户使用的shell

   -G 指定用户的辅助组

   -N 不创建自己的主组,将用户添加到UID为100的user组中

   -M 不创建用户的家目录

   -r 创建系统帐号

   -D 显示默认参数

用户组与权限管理的理解及切换用户相关命令使用_命令_14       用户组与权限管理的理解及切换用户相关命令使用_命令_15

     图4-3 useradd -D选项                    图4-4 useradd文件

 

   1.2 usermod:修改用户

   用户组与权限管理的理解及切换用户相关命令使用_管理_16 

                   图4-5 usermod帮助手册 

     -u UID 指定新的uid

     -g GID 指定新的gid,基本组

     -G 新辅助组,原来的辅助组会被覆盖,若要保留,-a选项,表示添加

     -s shell 指定新的默认shell

     -c comment 新的注释

     -d home 新的家目录,不会主动创建,配合-m选项可以创建新家目录,并且移动原家目录数据

     -l login 新的登录名

     -L lock 锁定账户

     -U unlock 解锁账户

     -e yyyy-mm-dd 指定用户帐号过期时间

     -f inactive 设定非活动期限

    用户组与权限管理的理解及切换用户相关命令使用_命令_17                    图4-6 usermod命令

  

   1.3 userdel:删除用户

用户组与权限管理的理解及切换用户相关命令使用_管理_18

                 图4-7 userdel帮助手册   

          -r 删除用户家目录


  2. 组账号管理命令

   2.1 groupadd: 添加组帐号

用户组与权限管理的理解及切换用户相关命令使用_用户_19

图4-8 groupadd帮助手册

      -g 指定gid

      -r 创建系统组

          Centos6(gid<500)  Centos7(gid<1000)


   2.2 groupmod: 组属性修改

用户组与权限管理的理解及切换用户相关命令使用_命令_20图4-9 groupmod帮助手册

      -n group_name 新名字

      -g GID 新的GID

     

   2.3 groupdel: 删除组

用户组与权限管理的理解及切换用户相关命令使用_管理_21

图4-10 groupdel帮助手册

      groupdel group


6.切换用户命令

   su [option...][-][args...]

用户组与权限管理的理解及切换用户相关命令使用_管理_22图5-1 su帮助手册

   su username 非登录式切换:不会读取目标的配置文件,不会改变当前工作目录

  用户组与权限管理的理解及切换用户相关命令使用_管理_23

     图5-2 su非登录式切换

   su - username 登录时切换:会读取用户的配置文件,改变当前的工作目录,完全切换

  用户组与权限管理的理解及切换用户相关命令使用_用户_24

     图5-2 su登录式切换

7.设置密码passwd

    passwd [option] username 修改指定用户的密码,仅root用户有权限

    passwd 修改自己的密码

用户组与权限管理的理解及切换用户相关命令使用_命令_25图6-1 passwd命令帮助手册

      -l 锁定用户帐号

      -u 解锁用户帐号

      -e 强制用户下次登录修改密码

      -n 密码最短使用时间

      -x 最长使用期限

      -w 提前警告天数

      -i 非活动期限

      --stdin 标准输入接收密码

用户组与权限管理的理解及切换用户相关命令使用_管理_26

            图6-2 passwd命令

8.修改密码chage

   chage 修改密码用户策略

用户组与权限管理的理解及切换用户相关命令使用_管理_27图7-1 chage命令帮助手册

      -d last_day

      -E 过期时间

      -W 警告时间

      -M 最长时间

      -m 最短时间爱你

      -l 显示密码策略

用户组与权限管理的理解及切换用户相关命令使用_管理_28

                图7-2 chage -l命令


9.查看和更改组成员groupmems

    groupmems [option][action]

用户组与权限管理的理解及切换用户相关命令使用_管理_29                      图8-1 groupmems命令帮助手册

       -g 更改指定组,仅root有权限

       -a 指定用户加入到组

       -d 从组中删除成员

       -p 清楚组中所有成员

       -l 显示组中成员

  用户组与权限管理的理解及切换用户相关命令使用_命令_30

      图8-1 groupmems命令