3A:认证、授权、审计

组group(ID号的划分)
的类别:从功能和使用上的划分

用户、组和权限(1)_用户

 一个用户可以属于零个或多个附加组   

***linux 安全上下文:

        进程的发起者  命令    对象

           root       ping    127.0.0.1

           root       touch   testfile1

运行中的程序:进程(process)

 以进程发起者的身份运行:

             Root:/bin/cat

             mage:/bin/cat

进程所能够访问资源的权限取决于进程的运行者的身份


Linux 用户和组的主要配置文件:

  ** /etc/passwd:用户及属性信息(名称、UID、主组ID等)                                         

       pwconv:passwd当中的密码映射到了/etc/shadow

       pwunconv: 取消映射,密码仍然放在/etc/passwd当中


   grpconv 将组密码映射到了/etc/gshadow

       grpunconv 取消组密码的映射

 

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

         组名:

       组密码:映射到了/etc/gshadow

         GID

       组成员:附加组的成员

      用户、组和权限(1)_组_02

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

       /etc/shadow:

 用户名

 密码位

 密码上一次的修改时间

 密码的最小存活期

 密码的最大存活期

 密码过期之前提前多少天提醒用户将会过期

 密码过期之后在用户仍不改密码后多少天触发帐户过期

 帐户过期时间

 保留位


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

               组名

               组密码

               管理员:更改组密码和成员

               组成员:功能同/etc/group中的第四列


文件操作

 vipw = vim /etc/passwd

    vipw -s = vim /etc/shadow

    vigr = vim /etc/group

    vigr -s = vim /etc/gshadow

    pwck 检查/etc/passwd语法

    grpck 检查/etc/group语法   


密码的修改策略:chage [OPTION]... LOGIN

          -d LAST_DAY

          -E --expiredate EXPIRE_DATE

          -I --inactive INACTIVE

          -m --mindays MIN_DAYS

          -M --maxdays MAX_DAYS

          -W --warndays WARN_DAYS

          –l 显示密码策略

          v 示例:

          chage -d 0 tom 下一次登录强制重设密码

          chage -m 0 –M 42 W 14 I 7 tom

          chage -E 2016-09-10 tom 



passwd

     username 指定要修改密码的用户名(仅root运行,普通用户不输入用户名,可直接修改自己的密码)

用户、组和权限(1)_组_03     -l 锁定用户  实际就是在密码位前加!!

     -u 取消用户锁定

     -e 强制用户下次登录时更改密码

     -n mindays: 指定最短使用期限

     -x maxdays:最大使用期限

     -w warndays:提前多少天开始警告

     -i inactivedays:非活动期限

*** --stdin 从标准输入接收用户密码

用户、组和权限(1)_权限 _04



  邮件发送mail -s 主题 发送人

          内容信息

        以.退出

         查看以cat 发送人    


创建用户:useradd

   /etc/default/useradd 创建用户的默认配置文件

     GROUP=100 表示使用useradd -N时默认使用的组为GIP100的组

     HOME=/home 自动创建家目录时,从哪个目录下创建与用户同名的家目录

     INACTIVE=-1 用户是否设置密码过期后,多少天帐户过期,为-1时,不会触发帐户过期

     EXPIRE=  是否指定一个帐户过期时间,为空表示帐户默认永不过期

     SHELL=/bin/bash 使用useradd创建用户时,如不使用-s 指定则默认的用户shell/bin/bash

     SKEL=/etc/skel  自动创建家目录时,从哪个目录拷贝模板文件

     CREATE_MAIL_SPOOL=yes  创建用户时是否在/var/spool/mail下为用户与用户同名的邮箱文件。


*手工创建家目录的方法

     mkdir /home/machao

     chmod 700 /home/machao/

     cp -r /etc/skel/.[^.]*  /home/machao/

     chown -R machao.machao /home/machao

 

练习:

1、创建用户gentoo,附加组为binroot,默认shell/bin/csh,注释信息为"Gentoo Distribution"


用户、组和权限(1)_组_05

2、创建下面的用户、组和组成员关系

        名字为admins 的组

        用户natasha,使用admins 作为附属组

        用户harry,也使用admins 作为附属组

        用户sarah,不可交互登录系统,且不是admins 的成员,

           natasha,harrysarah密码都是centos

 
   用户、组和权限(1)_组_06

 useradd & adduser

    -u UID 指定uid默认从1000开始往后

    -o 与 -u 配合,不检查UID的唯一性

    -g GID或组名  指定用户的主要组为某个已存在的组,可以指定GID也可以指定组名

    -G 指定附加组 以逗号为间隔可以同时指定多个,组必须事先存在,可以指定GID也可以指定组名。

    -c 注释信息

    -d 指定目录路径 ,如不指定默认在/home下与用户同名。指定时注意,目录名需已存在,基名不存在。

    -s 指定登录shell如下

    Useradd -s /sbin/nologin test  创建shell为不可交互式登录的用户

    -N 不创建私用组做主组,使用users组做主组

    -r 创建系统用户 (centos 6及之前的版本 < 500, centos 7 < 1000)

    /etc/default/useradd 创建用户的默认配置文件

    GROUP=100 表示使用useradd -N时默认使用的组为GIP100的组

    HOME=/home 自动创建家目录时,从哪个目录下创建与用户同名的家目录

    INACTIVE=-1 用户是否设置密码过期后,多少天帐户过期,为-1时,不会触发帐户过期

    EXPIRE=  是否指定一个帐户过期时间,为空表示帐户默认永不过期

    SHELL=/bin/bash 使用useradd创建用户时,如不使用-s 指定则默认的用户shell/bin/bash

    SKEL=/etc/skel  自动创建家目录时,从哪个目录拷贝模板文件

    CREATE_MAIL_SPOOL=yes  创建用户时是否在/var/spool/mail下为用户与用户同名的邮箱文件。


usermod

     -u NEWUID 用户名  修改用户的uid

     -g NEWGID 用户名  修改用户的主要组  可以指定组名,也可以指定GID

     -G GID或组名[,组名]  用户名 设定用户的附加组为哪些组,这前的附加组信息被覆盖

     -a -G 结合 使用可以增加用户的附加组,而不会影响之前的附加组

     -s shell名 用户名   修改用户的Shell

     -c "描述信息"  设置用户的描述信息

  *-d /path  用户名  修改用户的家目录,新家目录不会自动创建;若要创建新家目录并移

      动原家据,同时使用-m选项

     -l newname 用户名 修改用户的名称

                                       -L: lock指定用户,/etc/shadow 密码栏的增加 !   等同于passwd -l

     -u: unlock指定用户,/etc/shadow 密码栏的 ! 拿掉  等同于passwd -u

     -e:YYYY-MM-DD: 指明用户账号过期日期

     -f: INACTIVE: 设定非活动期限

 

  userdel

       -r 删除用户名连同家目录及邮箱文件一起删除


看用户的ID信息

id [OPTION]... [USER]

-u: 显示UID

-g: 显示GID

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

-n: 显示名称,需配合ugG使用



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

  su username 表示非登录式切换

su - username 表示登录式切换

su - 表示登录root


(不重要)chfn 用户名  修改用户的描述信息

chsh  -s  shell 用户名  修改用户的Shell 等同于usermod -s

 

groupadd 

      -g GID 组名  创建组

groupmod  

  -n newname 组名  修改组名

  -g newgid 组名 修改组id

groupdel 组名  删除组



**更改组密码

gpasswd 组名 设置组密码     管理员可以执行

-a 用户名 组名   将某用户以附加组方式加入到某组当中  管理员可以执行

-d 用户名 组名   将某用户从指定组当中踢出            管理员可以执行

-M 用户名[,用户名...]  组名 设置某组的用户列表       仅root执行

-A 用户名[,用户名...]  组名 设置某组的管理员列表     仅root执行

组管理员在不是组成员的情况下,仅能修改组密码,和将其他人加入组和踢出组,但并不具有组成员的权限.

 

newgrp 

   组名(普通用户执行)  非附加组成员的普通用户在正确输入组密码后可以使用该命令临时变更主要组.

附加组成员的普通用户无需输入密码可以使用该命令临时变更主要组. 原主要组临时变成附加组



  groupmems  root执行 (groupmems是以组为对象,看组有哪些成员)

-g 组名 -a 用户名 将某用户以附加组方式加入到某组当中  

-g 组名 -d 用户名 将某用户从指定组当中踢出  

-g 组名 -p 清空所有组成员  

-g 组名 -l 查看指定组有哪些成员(仅显示附加组)


groups用户名 查看指定用户属于哪些组(包含主组和附加组)

 

chgrp  组名 filename

文件的owner可以使用Chgrp修改文件的group,但该owner一定要属于目标group

 -R  递归

--reference=file1 file2 将file1group信息复制给file2

 

 文件权限


 用户、组和权限(1)_组_07


chown  root才能更改文件的所属人

用户名 filename

用户名.组名 filename 或 用户名:组名 filename  同时更改ownergroup  如果.:前省略,则只改group

权限设置

owner    Read

group    write

Other     exe

对文件来说:

    当仅r权限作用在文件上的时候,用户可以读取该文件的内容:cat less more head tail

当仅w权限作用在文件上的时候,用户可以修改文件的内容:>>

当仅x权限作用在文件上的时候,无作为.

当rw权限作用在文件上的时候,用户即能读与能修改:cat less more head tail vim nano > >>

当rx权限作用在文件上的时候,用户可以执行该文件

当wx权限作用在文件上的时候,权限等同于仅w权限.

    文件的常见权限是r--  rw-   rwx



当仅r权限作用在目录上的时候,用户可以短列出目录下的文件名.

当仅w权限作用在目录上的时候,无作为.

当仅x权限作用在目录上的时候,用户可以进入该目录,并且在知道具体文件名且具有相关权限的情况下,可以访问子文件.

当rw权限作用在目录上的时候,权限等同于仅r权限

当rx权限作用在目录上的时候,用户进入,长列出.

当wx权限作用在目录上的时候,用户可以进入且可以创建及删除文件.但不能使用文件名通配符

目录的常见权限r-x  rwx