用户和组

Posted

tags:

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

用户和组的管理

  用户账户:就是计算机操作者在操作系统中的身份映射,在满足了认证天剑之后的身份映射

  用户分类:

    超级用户(管理员用户):root

    普通用户

  系统用户:为了保证安全,必须让那些运行在后台的进程或服务类进程以非管理员的身份运行,这类用户一般不需要登录到系统

  登录用户:能够正常使用整个系统资源的用户

用户的标识:

  用户的登录名称:为操作者准备的简单易记的字符串标识

  用户的ID:为计算机系统准备的数字标识

    超级用户的ID就是0(ID为0的就是超级用户)

    系统用户:centos5、6 1~499

          centos7  1~999

    登录用户:centos5、6 500~6W

          centos7  1000~6W

     6W+的标识符为用户的自定义标识

名词解释:

  名称<-->ID

  解析库:/etc/passwd

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

系统利用解析库完成认证机制:验证登录用户是否是你声称的那个人

用户的认证信息库 认证库:/etc/shadow

  login name:用户的登录名

  encrypted password:加密了的密码

    格式:$算法+$salt+$密码

    如果该位置为!则表示用户的密码被禁用

    如果该位置为*则表示该用户为系统用户,不能登录

    如果该位置为空,则表示用户可以无需密码即可登录系统

  date of last password change:相对时间概念,相对于1970年一月一日到最后一次修改密码的那天的天数

  minimun password age:最小的密码期限在多长时间之内无法修改密码,默认值为0(随时可以修改密码),如果是非0的其他数字,意思是在这么长的天数内不能修改密码

  maximum password age:密码有效期在多长时间之后密码过期,默认99999(永久有效)

  password warning period:密码警告期,密码过期之前的友善提醒,默认为7天

  password inactivity period:密码过期之后的宽限期,默认不启用(-1)

  account expiration date:一个用户账户密码过期的日期,这是一个绝对的过期期限

  reserved field:保留字段,以备以后使用

组的认证信息库: /etc/group

 group_name:password:GID:user_list 

  group_name:组名

  password:组密码占位符,默认为空

  GID:组的ID

  user_list: 以该组为附加组的用户的列表

采用密码认证的机制:

  一般性策略:

    尽量使用随机字符串作为密码

    密码长度一般不要少于8个字符

    密码中至少包括大写字母、小写字母、数字、标点符号四类中的三类

    不定期更换密码,每隔一段时间就换一次密码,推荐42天之内改

在Linux中保存到认证库中的密码信息是经过加密保存的

hash单项加密算法:抽取原始数据的特征信息,数据指纹

  单项加密算法的特征:  

    只要数据相同,其加密结果就必然相同

    无论数据多大,其加密结果定长输出

    雪崩效应

    不可逆

  单项加密常用的算法

    1.md5:message digest(消息摘要)128bit定长输出

    2.sha1:Secure Hsah Alogorithm 安全的哈希算法 160bit定长输出

    3.sha224

    4.sha256

    5.sha384

    6.sha512

salt:随机数

 /dev/random: 仅仅只是从熵池中取但是会是随机数,如果熵池随机数被耗尽,则进程被阻塞

 /dev/urandom:先试图从熵池中返回随机数,如果熵池耗尽,则利用伪随机数生产器生产伪随机数

最终认证字符串:算法+salt+密码

在认证库中存放的信息:$6$salt$crytped_password

用户组:将具有某些相同或属性相似的用户联系在一起一遍集中授权的容器

 组类别:

    管理员组

    普通用户组

      系统组

      登录组

组的标识方法:

  组名:方便操作者使用

  组的ID:为用户提供组标识

    管理员组:0

    系统组:  centos5、6  1~499

           centos7 1~999

    登录组:   centos5、6  500~6W

           centos7 1000~6W

解析库: /etc/group

组也需要认证,组也有认证库:  /etc/gpasswd

组也需要密码保护:如果组没有设置密码保护的话,则不能随时加入

以用户为核心对组进行分类:

  用户的主要组(基本组)对于用户来说这样的组必须要有而且只能有一个

  用户的附加组(附加组,额外组)对于用户来说可以没有也可以有多个

根据组所容纳的用户来分

 私有组:组名与用户登录名相同并且组中只有此用户

 公共组:组中可以包含其他多个不同用户

  注意:默认情况下用户的主要组都是其私有组

用户和组的管理工作:主要使用命令来完成:

 组管理相关的命令:

      groupadd:新建组账户,添加组

        -g gid:在创建组账户时,指定组账户的GID,如果不使用该选项指定,系统会选择在组解析文件中出现的不大于6W的最大GID加1

        -r:创建系统组,创建一个GID在1~999(1~499)之间的组   

      groupdel:删除组账户   

         注意:如果某个组是某个用户的主要组或私有组则该组无法删除  

      groupmod:修改组的相关属性信息

        -g gid:修改组账户的ID

        -n NEW_GROUPNAME:修改组名              

 用户管理相关的命令:

      useradd:添加用户账户

       /etc/default/useradd

      /etc/login.defs

     /etc/skel

  以上三个文件和目录能够帮助管理员在未指定任何选项时,也能创建用户,并为用户赋予默认的属性

        -c ‘COMMENT‘:在创建用户时为用户添加注释信息,一般为全名

        -d PATH/TO/HOME_DIR:在创建用户时候为用户指定家目录的路径,被指定的目录应该是事先不存在的目录

        -g GROUPNAME:在创建用户时,为用户指定主组;

        -G:在创建用户时,为用户添加附加组;

        -k:skel

        -m:如果不存在则创建用户主目录,(在创建用户时强制性为用户创建家目录)

        -M: 在创建用户时,绝对不会创建家目录即使在/etc/login.etfs中CREATE_HOME的值为yes也不创建(不能给用户建家目录)

        -r:将用户建为系统用户

        -u:在创建用户的时候直接给用户指定UID,这个UID可以超出6W

        -s PATH/TO/SHELL:在创建用户的时候指定用户的默认shell(绝对路径)

        -D:显示或修改用户默认属性值

        -s修改/etc/default/useradd文件中shell的默认值  

     userdel:删除用户用户账户

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

     usermod:修改用户账户信息

        -c:修改用户注释字段的信息

        -g:修改用户的主要组

        -G:修改用户的附加组为列表中的组

        -a:给用户添加新的附加组,只能跟-G一起使用

        -d:(绝对路径)修改用户的家目录

        -m:与-d选项同时使用,意味着将旧的家目录中的数据移动到新家中

        -l:更改用户账户的登录名

        -s:(绝对路径)修改用户账户的登陆shell

        -u:修改用户的UID

        -L:锁定用户的密码

        -U:解锁用户的密码  

 认证管理相关的命令:

      passwd:设置和查看用户的密码信息的命令  如果省略用户名意味着更改当前登陆用户的密码   如果指定用户名更改指定用户的密码,只能root使用

         -l:锁定用户密码

         -u:解锁用户密码

   相比较usermod -L|-U而言,其优先级更高

         -d:删除用户密码,将/etc/shadow文件中的第二字段清空

         -S:查看用户的密码状态

         --stdin:借助于管道将输入数据流当做标准输入信息送给passwd命令

                     echo"PASSWORD"  | PASSWD --stdin USERNAME

 组认证相关命令  

      gpasswd

         -a:向名为group的组中添加用户user

         -d:从名为group的组中移除用户user

      chage(change age):改密码时间

           -d:修改默认最后一次修改时间

           -E:修改绝对日期

 其他的相关管理命令

      chsh:修改用户的默认shell 相当于usermod -s

      su:切换用户身份

         su USERNAME:半切换再切换用户的时候不会重新读取目标用户的配置文件,因此用户并没有登陆行为,所以工作环境不初始化

         su - UESRNAME:登录式切换完全切换,在切换用户时候,会重新读取目标用户的配置文件并且初始化工作环境相当于 su -l USERNAME

            -c COMMAND:并不会切换用户身份,而是以目标用户的身份执行某命令

      使用su用户时,root切换到其他普通用户时,无需密码,反之必须密码 进行用户切换之后,不要连续切换,而是用exit命令返回之前的用户

      id:显示真实的和有效的用户和组的ID

       真实的ID:在/etc/passwd定义的用户的UID和GID

       有效的ID:当前生效的用户的UID和GID

          -u:只显示用户有效的UID

          -g:只显示用户有效的GID

          -G:显示用户所有组的ID

          -n:以名称来代替ID进行展示

    newgrp GROUPNAME:临时更改当前登录用户的主要组;使用exit返回之前的状态         

Cisco开发的AAA认证体系

   Authentication:认证核实身份是否正确

   Authorization:授权对已经核实身份的用户进行资源分配

   Accounting:审计,监管资源被使用的情况

 

多任务,多用户的系统:

 能够实现资源使用和完成任务的主体是:应用程序进程

安全上下文:Secure Context

进程是以其发起者的身份运行的:进程的所有者就是发起者 会将发起者的信息标记在进程上 当进程试图访问资源的时候,安全上下文会比对进程的所有者和资源所有者的关系,首先查看进程的所有者是不是资源的所有者,如果是,会按照属主的权限使用资源,如果不是,则判断进程的所有者是否属于资源所有组,如果是,按照属组的权限使用资源,如果不是,则直接使用资源的其他人访问权限来使用资源


       

以上是关于用户和组的主要内容,如果未能解决你的问题,请参考以下文章

win10系统本地用户和组在哪

win10本地用户和组下有这么多组,哪些可以删除?如何删除?

Linux用户和组管理未完成

LINUX中的用户和组

用户和组权限管理笔记

【Centos基础篇】之用户和组