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设置密码的策略,那么不会设置成功

 未完,待续....

 

原文地址:https://www.cnblogs.com/lanxiansen/p/10472560.html