用户、组及权限管理

一、用户的概念

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中每一行记录对应一个用户,每行记录又被冒号分隔,其格式如下:

用户、组及权限管理_用户、组和权限 第一周

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用户拥有读权限,从而保证了用户密码的安全性,其格式如下:

用户、组及权限管理_用户、组和权限 第一周_02

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

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,添加的随机数;

用户、组及权限管理_用户、组和权限 第一周_03 

二、用户组的概念

1、概念

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

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

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

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

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

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

3 /etc/group:组的信息库

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

用户、组及权限管理_用户、组和权限 第一周_04

        group_name:password:GID:user_list

        group_name:组名

     password:组密码

     GID:组ID

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

三、管理命令

1useradd命令:创建用户

  useradd [选项] 登录名

   -u, --uidUID:指定UID

  用户、组及权限管理_用户、组和权限 第一周_05

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

  用户、组及权限管理_用户、组和权限 第一周_06

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

  用户、组及权限管理_用户、组和权限 第一周_07 

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

  用户、组及权限管理_用户、组和权限 第一周_08

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

  用户、组及权限管理_用户、组和权限 第一周_09

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

  用户、组及权限管理_用户、组和权限 第一周_10

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

  用户、组及权限管理_用户、组和权限 第一周_11

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

  用户、组及权限管理_用户、组和权限 第一周_12

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

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

  用户、组及权限管理_用户、组和权限 第一周_13

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

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

2usermod命令:修改用户属性

   usermod [选项] 登录

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

  用户、组及权限管理_用户、组和权限 第一周_14

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

  用户、组及权限管理_用户、组和权限 第一周_15

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

  用户、组及权限管理_用户、组和权限 第一周_16

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

  用户、组及权限管理_用户、组和权限 第一周_17

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

  用户、组及权限管理_用户、组和权限 第一周_18

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

   -l:修改用户名

  用户、组及权限管理_用户、组和权限 第一周_19

   -s:修改用户的默认shell

  用户、组及权限管理_用户、组和权限 第一周_20

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

  用户、组及权限管理_用户、组和权限 第一周_21

  -U:解锁用户的密码

  用户、组及权限管理_用户、组和权限 第一周_22

3userdel命令:删除用户

   userdel[选项] 用户名

  用户、组及权限管理_用户、组和权限 第一周_23

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

  用户、组及权限管理_用户、组和权限 第一周_24

4passwd命令:

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


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

  用户、组及权限管理_用户、组和权限 第一周_25

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

  用户、组及权限管理_用户、组和权限 第一周_26

      选项:

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

         -d:清除用户密码串

         -e:过期期限

         -i:非活动期限

         -n:密码最短使用期限

         -x:密码最长使用期限

         -w:警告期限

      --stdin

          echo "PASSWORD" |passwd --stdin USERNAME                     

  用户、组及权限管理_用户、组和权限 第一周_27

  用户、组及权限管理_用户、组和权限 第一周_28

5、gpasswd命令

   给组添加密码:

  用户、组及权限管理_用户、组和权限 第一周_29

  组密码文件:/etc/gshadow

  用户、组及权限管理_用户、组和权限 第一周_30

   gpasswd [选项] group

   -aUSERNAME:向组中添加用户

  用户、组及权限管理_用户、组和权限 第一周_31

   -d USERNAME:从组中移除用户  

  用户、组及权限管理_用户、组和权限 第一周_32               

6newgrp命令

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

          newgrp[-] [group]

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

  用户、组及权限管理_用户、组和权限 第一周_33

7chage命令

       更改用户过期信息

         chage [选项] 登录名

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

                -E:过期日期

                -I:非活动期限

                -W:警告期限

                -m:最短使用期限

                -M:最大使用期限

8id命令

 显示用户的真和有效ID;

        id [OPTION]... [USER]

            选项:

                -u:仅显示有效的UID

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

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

                -n:显示名字而非ID

  用户、组及权限管理_用户、组和权限 第一周_34

9su命令

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

               su- USERNAME

               su-l USERNAME

  用户、组及权限管理_用户、组和权限 第一周_35

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

                suUSERNAME

  用户、组及权限管理_用户、组和权限 第一周_36

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

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

  用户、组及权限管理_用户、组和权限 第一周_37

四、权限管理

       ls –l

  用户、组及权限管理_用户、组和权限 第一周_38

        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=

  用户、组及权限管理_用户、组和权限 第一周_39

  用户、组及权限管理_用户、组和权限 第一周_40

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

               u+,u-

               g+,g-

               o+,o-

               a+,a-

  用户、组及权限管理_用户、组和权限 第一周_41

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

                660

  用户、组及权限管理_用户、组和权限 第一周_42

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

  用户、组及权限管理_用户、组和权限 第一周_43

       选项:

           -R,--recursive:递归修改

  用户、组及权限管理_用户、组和权限 第一周_44

  2chown命令:

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

  用户、组及权限管理_用户、组和权限 第一周_45

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

  用户、组及权限管理_用户、组和权限 第一周_46

  3chgrp命令:

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

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

  用户、组及权限管理_用户、组和权限 第一周_47

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

               文件:666-umask

               目录:777-umask

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

           umask023

            666-023=644

            777-023=754

            umask命令

               umask:查看当前umask

  用户、组及权限管理_用户、组和权限 第一周_48

               umask MASK:设置umask

  用户、组及权限管理_用户、组和权限 第一周_49

   注意:此类设定仅对当前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

  用户、组及权限管理_用户、组和权限 第一周_50

               -o:设定目标文件属主

  用户、组及权限管理_用户、组和权限 第一周_51

                -g:设定目标文件属组

  用户、组及权限管理_用户、组和权限 第一周_52

                -d:创建目录

  用户、组及权限管理_用户、组和权限 第一周_53

 6mktemp命令

        mktemp- create a temporary file or directory

         创建临时目录或临时文件

         mktemp [OPTION]... [TEMPLATE]

             常用选项:

                        -d:创建临时目录

  用户、组及权限管理_用户、组和权限 第一周_54

                        变量引用:

  用户、组及权限管理_用户、组和权限 第一周_55

                  -u:测试

  用户、组及权限管理_用户、组和权限 第一周_56

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