zoukankan      html  css  js  c++  java
  • linux用户及组管理

    linux用户及组管理

    1、前序

    对有限区域内,有限资源的合规使用的3A标准

      Authentication:认证   

        相当于拿到了一个登录linux的账号,这叫认证了,但是这不表明拿到一个账号你就能为所欲为,还需要进行授权

      Authorization:授权

        任何一个系统,认证完以后都有系统指派的一些权限供这个账号使用。linux怎么完成用户输入账号密码认证成功后怎么能够完成资源获取呢?事实上,linux的哲学思想是一切皆文件,当用户成功登陆linux主机,一切以这个用户为属主的文件,他应该就具备属主访问的权限

      组是能够将用户和权限建立关系的一个容器,他可以接受授权,同时也可以接受用户的加入。从而能够将权限与多个用户建立起相应关系。

      Accounting:审计

        Audition

      linux用户分类:用户具有用户名+UID组成

        管理员:root   UID0

        普通用户:USERNAME  UID范围1-65535

          系统用户:UID范围是1-499

          登录用户:UID安慰是500以上

            这两者的区别:系统用户主要为系统的守护类进程获取系统资源而完成权限分配。登录用户主要是为了交互式登录

      linux的组分类:组由组名+GID组成,组是一个容器,组主要作用:将多个用户与某一类权限建立关系,实现权限指派的另一种方式

        管理员组:组名为root  GID0

        普通组:

          系统组:组GID范围1-499

          普通组:组GID范围500以上

      linux安全上下文

        我们对计算机的操作,其实是运行程序来完成的,我们叫做进程。进程的运行是以发起者的身份运行,一个发起者具有什么权限,那么他执行的命令就具有什么权限,即发起者的权限决定了命令的权限

      linux组的类别:(站在用户所属组的类别来讲)

        用户基本组,也称为主组

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

        用户的附加组,也称为额外组

      linux用户和组相关的配置文件

        /etc/passwd:保存用户及其相关属性信息(名称、UID、基本组ID等等)

        /etc/group:组及其属性信息

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

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

      /etc/passwd内容解释

        name:password:UID:GID:GECOS:DIRECTORY:shell 这段内容对应为的解释:

        用户名:密码:UID:GID:用户的完整信息(用户电话、地址等信息):主目录:默认shell

      /etc/group内容解释

        group_name:password:GID:User_list这段内容解释:

          组名:组密码:GID:以当前组委附加组的用户列表(每个以逗号分隔)

      /etc/shadow内容解释

        jerry:$6$rVNi9i5.$1yyPBDswYy1vw2eyHOq5wnmQU6wXo56bowYbOgoo/ZReAtuZXnekl4oWE1l3OGnEsBzq.yYfPTU8Ci7QXIuMl1:17959:0:99999:7:::

        用户名:加密了的密码:最近一次更改密码的日期:密码的最小使用期限:密码的最大使用期限:密码的警告时间段:密码宽限期:账号的过期日期

        注意:最近一次更改密码的日期是一个相对时长,是相对于linux诞生到你上一次修改密码的天数

          密码的最小使用期限如果为0,表示你可以改了密码再改密码

          密码的最大使用期限如果99999,表示你的账户永久有效

        加密机制(明文转化为密文)

          单向加密:提取数据指纹(指纹叫做微特征码,只要有一个改变,那么整个加密后的字符串发生重大改变,这个效应也叫雪崩效应。但是这些算法加密不同长度的明文,它的输出结果长度是一样的,这叫定长输出)

        linux上的加密算法

          md5message  digest中文名叫消息摘要,输出结果是128bit

          sha1secure  hash  algorihm 中文叫安全的hash算法,输出结果是160bit

          sha224secure  hash  algorihm 中文叫安全的hash算法,输出结果是224bit

          sha386secure  hash  algorihm 中文叫安全的hash算法,输出结果是386bit

          sha512secure  hash  algorihm 中文叫安全的hash算法,输出结果是512bit

        linux各个算法对应的命令

          md5sum

          ha1sum  

          sha224sum  

          sha256sum  

          sha384sum  

          sha512sum

        加密:明文转化为密文

        解密:密文转化为明文

      关于linux6.7密码内容解释

        $6$0TYPpFIXKw/73xmT$Z3N457EIbNjEl9KbiMLl/xSkYNIQOuqPY22myoeKJyWYAhH/bNGj8uLx9SCnOSSB6gvo7r3mCBiNAzF6GvmaC1

          这个密码分为三个字段内容,每个字段内容用$符号隔开,第一分字段表示使用的加密方式,6表示使用的sha512算法加密,第二个字段表示为密码添加的杂质。为什么要添加杂质呢?为了避免两个用户输入了同一个密码后加密的内容相同,目的是混淆视听。第三个字段才是真正的密码

      密码的复杂性策略

        1、使用数字、大小写字母、及特殊字母至少3

        2、足够长

        3、使用随机密码

        4、定期更换密码,不使用最近曾使用过的密码

    2、useradd命令

    基本介绍

      增加一个用户或者更新一个用户的信息

    基本语法

            useradd [options] LOGIN

            useradd -D

            useradd -D [options]

    常用选项

      -u  UID:手动指定用户的UID。在linux6.xUID最小不低于500,最大不超过60000,在linux7.xUID最小不低于1000,最大不超过60000。而这个最小最大不超过那个值是在/etc/login.defs文件中定义的

      -g  GID|Gname:指明用户所属基本组,-g选项后面可以接组名或者也可以接GID

      -c  str:指明用户的一些基本的描述,str就表示基本的描述

      -d  path:指明用户的家目录,path为家目录路径。可以不指定,不指定则为/home+用户名组成家目录,比如,oldboy用户,不指定家目录,则默认是/home/oldboy

    注意:如果这个路径已经存在,即家目录已经存在,那么创建用户指定这个已经存在的目录为家目录时,不会从/etc/skel拷贝任何文件。不拷贝任何文件意味着,当我们使用su命令切换到这个用户上的时候,不能够正常显示,因为这个/etc/skel文件包含一些环境变量值的定义

      -s  shell:指定用户的默认shell

      -m:创建用户的家目录

      -M:不创建用户的家目录

      -r:创建系统用户

        CentOS6.x的系统用户UID小于500

        CentOS7.x的系统用户UID小于1000

      -p  password:创建用户并且给定密码(不推荐使用,因为在历史记录中间存在这条记录)

      -G  GID|GnameGID|GnameGID|Gname...:指定用户的附加组,可以指定多个,每个用逗号隔开,但是这些组必须事先存在

      -f  num:修改账户彻底禁用的宽限时间

      -e  datetime:修改账户过期时间

      -D:修改创建用户使用的默认值,创建用户使用的默认值定义在/etc/default/useradd文件中,修改也是修改这个文件的值。但是这个选项要结合其它选项一起使用,如下:

      -s  shell:修改默认shell

      -f  num:修改默认账户过期的宽限时间

      -e  num:修改默认账户过期时间

      -b  path:修改默认家目录

      -g  Gname:修改默认用户的基本组

    3、groupadd命令

    基本介绍

      创建一个组

    基本语法

      groupadd  [options]  groupName

    常用选项

      -g  num:手动指定组的GID

      -r:创建一个系统组

        CentOS6.x的系统GID小于500

        CentOS7.x的系统GID小于1000

    4、id命令

    基本介绍

      打印有效用户或者组的id

    基本语法

      id  [OPTION]...  [USERNAME]

    常用选项

      -u:显示用户的UID

      -g:显示用户的基本组

      -G:显示用户所有的组包括基本组和附加组

      -n:显示组或者用户的名字,这个选项要结合-u-g-G选项使用

    5、su命令

    基本介绍

      切换用户或者以其他用户身份执行命令

    基本语法

      su  [OPTION]...  [-]  [USER [ARG]...]

    常用选项

      -c  COMMAND:切换身份执行命令。命令执行结束回到原来的用户下

        案例演示

          su  -c “cat  /etc/fstab”  -  odloy

      -l:切换登录的意思,这个选项与 ---login用法一致

        su   -  oldboy  与  su  -l  oldboy  与  su  --login  oldboy是一样的

      -s  shell:切换到目标用户以后使用指定的shell,而不是使用目标用户的默认shell

      su命令切换用户的方式

        su   username:非登录式切换,不会加载目标用户即这里的username的配置文件

        su  -  username:登录式切换,会加载目标用户即这里的username的配置文件,这个也叫完全切换

        注意:管理员切换至其他用户无需密码,其他用户切换时需要密码

    6、usermod命令

    基本介绍

      修改用户账户信息

    基本语法

      usermod  [options]  LOGIN

    常用选项

      -u  New_UID:修改原来的UID,修改为New_UID

      -g  New_GID|New_name:修改原来的基本组,修改为New_GID或者New_name

      -G  Group1[,Group2,.....[,Groupn]]:修改附加组,原来的附加组会被新的附加组覆盖,若想保留原来的附加组联合使用-a选项

      -s  shell:修改用户的默认shell

      -c  new_comment:修改用户的注释或者基本描述信息

      -e  date:修改账户过期时间,date的格式YYYY-MM-DD,它会自动换算

      -f  days:修改账户警用的宽限时间

      -d  path:修改用户的家目录为path

      注意:默认原来的家目录下面的文件不会同时移动至新的家目录下。如果要移动,则使用-m选项

      -l  login_name:修改的登录名

      -Llock锁定指定用户

        这个有什么现象呢?

          当我们锁定一个用户时,会在/etc/shadow文件中的密码字段前面加一个感叹号。锁定以后的用户没法切换也没法登录,但是管理员可以切换过去

      -Uunlock解除锁定

    7、passwd命令

    基本介绍

      给用户添加密码

    基本语法

      passwd  [-k]  [-l] [-u [-f]] [-d] [-e] [-n min-

           days] [-x maxdays] [-w warndays] [-i  inactive-

           days] [-S] [--stdin] [username]

    常用选项

      -l:锁定指定用户

      -u:解锁指定用户

      -n  days:你的密码最短使用期限

    -x  days:你的密码最大使用期限

    案例演示

    [root@oldboy ~]# tail -n 1 /etc/shadow
    
    www:!!:17959:0:99999:7:::
    
    [root@oldboy ~]# passwd -x 10 www
    
    Adjusting aging data for user www.
    
    passwd: Success
    
    [root@oldboy ~]# tail -n 1 /etc/shadow
    
    www:!!:17959:0:10:7:::

      -e  days:设置密码过期时间

      -d:删除密码

      --stdin:从标准输入接受用户密码

    案例演示

    [root@oldboy ~]# echo 123|passwd --stdin www
    
    Changing password for user www.
    
    passwd: all authentication tokens updated successfully.  

    使用注意

      如果一个账户没有设置密码,那么他自己没法改密码,只能通过管理员添加密码后你在修改。同时如果普通用户设置密码没有满足linux设置密码的策略,那么不会设置成功

     未完,待续....

     

  • 相关阅读:
    Code Forces 650 C Table Compression(并查集)
    Code Forces 645B Mischievous Mess Makers
    POJ 3735 Training little cats(矩阵快速幂)
    POJ 3233 Matrix Power Series(矩阵快速幂)
    PAT 1026 Table Tennis (30)
    ZOJ 3609 Modular Inverse
    Java实现 LeetCode 746 使用最小花费爬楼梯(递推)
    Java实现 LeetCode 745 前缀和后缀搜索(使用Hash代替字典树)
    Java实现 LeetCode 745 前缀和后缀搜索(使用Hash代替字典树)
    Java实现 LeetCode 745 前缀和后缀搜索(使用Hash代替字典树)
  • 原文地址:https://www.cnblogs.com/lanxiansen/p/10472560.html
Copyright © 2011-2022 走看看