用户、组及权限管理

一、用户的概念

1理解Linux多用户,多任务的特性

Linux是一个真实的、完整的多用户多任务的操作系统,多用户多任务就是在系统上建立多个用户,而多个用户可以在同一时登入操作系统执行各自任务操作,互不影响,资源隔离。

2、用户的分类

Linux下用户可分为二类:

管理员:拥有对系统的最高管理权限,默认是root用户。

普通用户:只能对自己目录下的文件进行访问和修改,登录系统权限。

普通用户:分为登录用户和系统用户

3、用户标识

   UserIDUID

    16bits二进制数字:0-65535

    管理员:0

    普通用户:1-65535

          系统用户:1-499CentOS6),1-999CentOS7

          登录用户:500-60000CentOS6),1000-60000CentOS7

4、用户的相关配置文件

(1)/etc/passwd文件

系统用户配置文件,是用户管理中最重要的文件,这个文件记录了Linux系统中每个用户的一些基本属性,并且对所有用户可读,/etc/passwd中每一行记录对应一个用户,每行记录又被冒号分隔,其格式如下:

wKiom1ZsG2KAvkKpAACwWjxWMRc719.png

namepassedUID:GID:GECOS:directoryshell

name: 用户名

password:可以是加密的密码,也可是占位符x

GID:用户所属的主组的ID号;

GECOS:注释信息

directory:用户的家目录;

shell:用户的默认shell,登录时默认shell程序;

(2)/etc/shadow:用户密码

用户影子文件,由于/etc/passwd文件是所有用户都可读的,这样就导致了用户的密码容易出现泄露,因此,Linux将用户的密码信息从/etc/passwd中分离出来,单独的放到了一个文件中,这个文件就是/etc/shadow,该文件只有root用户拥有读权限,从而保证了用户密码的安全性,其格式如下:

wKiom1ZsG6eDa6QuAABbYsw5ewY589.png

用户名:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期段:过期期限:保留字段

3)认证信息:

通过比对事先存储的,与登录时提供的信息是否一致;

password

      /etc/shadow

      /etc/gshadow

密码的使用策略:

     1、使用随机密码;

     2、最短长度不要低于8位;

     3、应该使用大写字母、小写字母、数字和标点符号四类字符中至少三类;

     4、定期更换;

4)加密算法:

    对称加密:加密和解密使用同一个密码;

    非对称加密:加密和解密使用的一对儿密钥;

    密钥对儿:

    钥:public key

    私钥: private key

    单向加密:只能加密,不能解密;提取数据特征码;

    定长输出

     雪崩效应

     算法:

         md5:message digest, 128bits

         shasecure hash algorithm, 160bits

         sha224

         sha256

         sha384

         sha512

     在计算之时加salt,添加的随机数;

wKioL1ZsG8jx1TY-AABxlC1t-EA885.png 

二、用户组的概念

1、概念

   用户组(group)就是具有相同特征的用户(user)的集合体;比如有时我们要让多个用户具有相同的权限,比如查看、修改某个文件或执行某个命令,这时我们需要用户组,把用户都定义到同一个用户组,通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,是我们通过定义组和修改文件的权限来实现的。

2、用户与用户组的对应关系是:

   一对一:某个用户可以是某个组的唯一成员

   多对一:多个用户可以是某个唯一的组的成员,不归属于其它用户组

   一对多:某个用户可以是多个用户组的成员

   多对多:多个用户对应多个用户组,并且几个用户可以是归属相同的组

3 /etc/group:组的信息库

用户组配置文件,用户组的所有信息都存放在此文件中,其格式如下:

wKiom1ZsHCWh4TEFAAAgLC1TD74464.png

        group_name:password:GID:user_list

        group_name:组名

     password:组密码

     GID:组ID

        user_list:该组的用户成员;以此组为附加组的用户的用户列表

三、管理命令

1useradd命令:创建用户

  useradd [选项] 登录名

   -u, --uidUID:指定UID

  wKioL1ZsHGvBG-z5AAA6JKquiaM053.png

   -g, --gidGROUP:指定基本组ID,此组得事先存在;

  wKioL1ZsHKbDd1qIAAA-cbQulA4066.png

   -G,--groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用户所属的附加组,多个组之间用逗号分隔;

  wKiom1ZsHNfx5KeDAAB15d2SfGM008.png 

    -c,--comment COMMENT:指明注释信息;

  wKiom1ZsHQfBXFW4AADo3sZaugo057.png

   -d, --homeHOME_DIR:以指定的路径为用户的家目录;通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件;

  wKioL1ZsHS6jUBLdAADudv58VD8381.png

   -s,--shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中;

  wKiom1ZsHUyBn1CqAADKWRnM62k722.png

   -M:不为用户创建主目录

  wKiom1ZsHW_S6SdIAAApECrHcB4504.png

   -r,--system:创建系统用户;

  wKioL1ZsHZeDaNTpAAAjSEGyk3M634.png

注意:创建用户时的诸多默认设定配置文件为/etc/login.defs       

   useradd -D:显示创建用户的默认配置;

  wKioL1ZsHb6RUmUqAAA3XbtMb-w381.png

   useradd -D选项: 修改默认选项的值;

  修改的结果保存于/etc/default/useradd文件中;

2usermod命令:修改用户属性

   usermod [选项] 登录

   -u:修改用户的ID为此处指定的新UID

  wKiom1ZsHd2QcnoZAABBvmVL_Xc513.png

   -g:修改用户所属的基本组

  wKioL1ZsHg7THU_VAAApspva_ds280.png

   -G,--groupsGROUP1[,GROUP2,...[,GROUPN]]]:修改用户所属的附加组:原来的附加组会被覆盖

  wKioL1ZsHjPC6d9vAAAyaHZiogo642.png

   -a:与-G一同使用,用于为用户追加新的附加组

  wKioL1ZsHluy68E6AAA1qxuix2A239.png

   -d:修改用户的家目录:用户原有的文件不会被转移至新位置

  wKiom1ZsHnWTzNb9AABNftu_qaI871.png

   -m:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录

   -l:修改用户名

  wKioL1ZsHt7hzS0iAABNweKXwb8762.png

   -s:修改用户的默认shell

  wKioL1ZsHv2h00SwAABOHX1pqXY075.png

  -L:锁定用户原来的密码字符串之前添加一个“!”

  wKioL1ZsHy6xbNl1AAA8P1Uoxgk787.png

  -U:解锁用户的密码

  wKiom1ZsH0ihdKT0AAA6NGLLdlQ901.png

3userdel命令:删除用户

   userdel[选项] 用户名

  wKiom1ZsH2fwO-eIAABM29D99fc150.png

   -r:删除用户时一并删除其家目录

  wKioL1ZsH46iYe9ZAABnIzy6iYo556.png

4passwd命令:

   passwd  [-k] [-l]  [-u  [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S][--stdin] [username]


  (1)   passwd:修改用户自己的密码

  wKiom1ZsH6rhTXKCAAAqX0D4x2U485.png

  (2)   passwdUSERNAME:修改指定用户的密码,但仅root有此权限

  wKiom1ZsH8vCsvvmAABEV1WVtHs115.png

      选项:

         -l-u:锁定和解锁用户

         -d:清除用户密码串

         -e:过期期限

         -i:非活动期限

         -n:密码最短使用期限

         -x:密码最长使用期限

         -w:警告期限

      --stdin

          echo "PASSWORD" |passwd --stdin USERNAME                     

  wKioL1ZsILqSvmZ0AAA1MYKqAtY789.png

  wKiom1ZsINzjOQvZAAAo8q9sTzE538.png

5、gpasswd命令

   给组添加密码:

  wKioL1ZthWqi6QYOAAAoKi5xM8g252.png

  组密码文件:/etc/gshadow

  wKioL1ZthZDjyUuRAAAwbGnk46s471.png

   gpasswd [选项] group

   -aUSERNAME:向组中添加用户

  wKiom1ZthazR_uHyAAAkRAQO19g687.png

   -d USERNAME:从组中移除用户  

  wKioL1Zthc-Qqr9qAAAk0KEclVk280.png               

6newgrp命令

   临时切换指定的组为基本组;

          newgrp[-] [group]

          -: 会模拟用户重新登录以实现重新初始化其工作环境

  wKiom1Zthe6wHbYnAACTLnPPMTI111.png

7chage命令

       更改用户过期信息

         chage [选项] 登录名

                -d:上一次密码的修改时间

                -E:过期日期

                -I:非活动期限

                -W:警告期限

                -m:最短使用期限

                -M:最大使用期限

8id命令

 显示用户的真和有效ID;

        id [OPTION]... [USER]

            选项:

                -u:仅显示有效的UID

                -g:仅显示用户的基本组ID;

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

                -n:显示名字而非ID

  wKiom1Zthg7B8PEcAAAj8yHdmOo371.png

9su命令

    登录式切换:会通过读取目标用户的配置文件来重新初始化

               su- USERNAME

               su-l USERNAME

  wKioL1ZthjCQgL6MAAAjm72n7eg966.png

   非登录式切换:不会读取目标用户的配置文件进行初始化

                suUSERNAME

  wKioL1ZthlLRlqssAAAf52Oq1_0126.png

   注意:管理员可无密码切换至其它任何用户;

    -c'COMMAND':仅以指定用户的身份运行此处指定的命令;

  wKiom1Zthm-CBF1zAAAYZH28I2s297.png

四、权限管理

       ls –l

  wKiom1Ztho3RxpDHAABQ9BymW70109.png

        rwxrwxrwx:

          左三位:定义userowner)的权限

          中三位:定义group的权限

          右三位:定义other的权限

      进程安全上下文:

      进程对文件的访问权限应用模型:

      进程的属主与文件的属主是否相同:如果相同,则应用属主权限,

      否则,则检查进程的属主是否属于文件的属组:如果是,则应用属组权限

   否则,就只能应用other的权限

  1、权限

     rreadable,读

     wwriteable,写

     xexcuteable,执行

   文件:

      r:可获取文件的数据

      w:可修改文件的数据

      x:可将此文件运行为进程

   目录:

      r:可使用ls命令获取其下的所有文件列表,不能包含详细信息

      w:可修改此目录下的文件列表,即创建或删除文件

      x:可cd至此目录中,且可使用ls -l来获取所有文件的详细属性信息

      moderwxrwxrwx

      ownershipusergroup

   权限组合机制:

           --- 000 0

           --x 001 1

            -w-010 2

            -wx011 3

           r-- 100 4

           r-x 101 5

           rw- 110 6

           rwx 111 7

   2、权限管理命令

    1 chmod命令:

      三类用户:

           u:属主

           g:属组

           o:其它

           a:所有

    (1)chmod [OPTION]... MODE[,MODE]... FILE...

           MODE表示法:

      赋权表示法:直接操作一类用户的所有权限rwx

            u=g=o=a=

  wKioL1ZthrCArjiqAAAvmQyV67k382.png

  wKioL1ZthtDRv-dNAAAwYODPn-4392.png

     授权表示法:直接操作一类用户的一个权限位rwx

               u+,u-

               g+,g-

               o+,o-

               a+,a-

  wKiom1ZthuqQdlsMAABA8dgfGdY588.png

     (2)chmod[OPTION]... OCTAL-MODE FILE...

                660

  wKioL1ZthwqTUIb5AABAFN5hcb8215.png

     (3)chmod [OPTION]... --reference=RFILE FILE...

  wKiom1ZthyHjSMozAACbgjdGhaU039.png

       选项:

           -R,--recursive:递归修改

  wKiom1Zthz_DIJSMAACyyRQO8t0885.png

  2chown命令:

            chown [OPTION]... [OWNER][:[GROUP]] FILE...

  wKioL1Zth2LgMFFQAABGPoHSH3U894.png

            chown [OPTION]... --reference=RFILE FILE...

  wKioL1Zth4HwIJ3YAABKuhW1xz4824.png

  3chgrp命令:

            chgrp[OPTION]... [OWNER][:[GROUP]] FILE...

            chgrp[OPTION]... --reference=RFILE FILE...

  wKiom1Zth5rzcCafAAA61Ccmq8E574.png

  4umask:文件的权限反向掩码,遮罩码:

               文件:666-umask

               目录:777-umask

注意:之所以文件用666去减,表示文件默认不能拥有执行权限,如果减得的结果中有执行权限,则需要将其加1

           umask023

            666-023=644

            777-023=754

            umask命令

               umask:查看当前umask

  wKiom1Zth7jQe_zvAAATz4LDYwo339.png

               umask MASK:设置umask

  wKioL1Zth9ji6DE6AAAeNoHUe-E837.png

   注意:此类设定仅对当前shell进程有效

  5install命令

        install - copy files and set attributes

 

         单源复制:

            install [OPTION]... [-T] SOURCE DEST

         多源复制:

            install [OPTION]... SOURCE... DIRECTORY

            install [OPTION]... -t DIRECTORY SOURCE...

         创建目录

            install [OPTION]... -d DIRECTORY...

        常用选项:

               -m:设定目标文件权限,默认为755

  wKiom1Zth_DRsVPbAAA1qhfwPIE975.png

               -o:设定目标文件属主

  wKioL1ZtiA_Q_MvmAAA1ZvH3QqY177.png

                -g:设定目标文件属组

  wKiom1ZtiCuj_nWmAAA10i3lyps050.png

                -d:创建目录

  wKioL1ZtiF6TZjo-AAAtQVkrqgE886.png

 6mktemp命令

        mktemp- create a temporary file or directory

         创建临时目录或临时文件

         mktemp [OPTION]... [TEMPLATE]

             常用选项:

                        -d:创建临时目录

  wKiom1ZtiHjQbvfuAAAfVaLUHpE761.png

                        变量引用:

  wKioL1ZtiJ_CLs5qAAAw_o8iYhE084.png

                  -u:测试

  wKiom1ZtiLbTjZcGAABb_oG9gSk894.png

 注意:mktemp会将创建的临时文件直接返回,因此,可直接通过命令引用保存起来