Linux系统中的权限管理

1.文件权限存在的意义

文件权限的存在是系统最底层安全设定方法之一,保证文件可以被可用的用户进行相应的操作。

2.文件权限的查看
ls  -l    file              查看文件信息

ls  -ld  dir               查看目录本身信息

ll         file               ##相当于ls -l file

ll   -d   dir                ##相当于ls -ld dir

ls  -LR dir                ##递归显示子目录


ls  -l    file              查看文件信息

Linux系统中的权限管理

Linux系统中的权限管理

ls  -ld  dir               查看目录本身信息

Linux系统中的权限管理

Linux系统中的权限管理

ls  -LR dir                ##递归显示子目录

Linux系统中的权限管理

3.权限的读取

Linux系统中的权限管理

[1]文件的类型

              - 空文件,或者文本
              d

目录

               l 软链接
               s socket套接字
               b block块设备
               c

字符设备

[2]文件的权限

Linux系统中的权限管理

1.[u]文件拥有者对文件能做的操作

2.[g]文件所有组对文件能做什么操作

3.[o]其他人对文件能做的操作

[3]

对文件:文件内容被记录的次数

对目录:目录中子目录的个数

[4]

文件所以人

[5]

文件的所有组

[6]:

对文件:文件大小

对目录:目录中子文件元数据大小,文件夹的时间戳不算

[7]

文件内容被修改的时间

[8]

文件的名称

4.如何改变文件的所有人和所有组

chown|chgrp

 

chown                           username                 file|dir               ##更改文件的拥有者

chown                           user:group               file|dir                ##更改文件或者目录的用户和用户组

chown              -R          user:group                dir                     ##递归更改目录的用户和用户组

示例:

Linux系统中的权限管理

Linux系统中的权限管理

chgrp                                group                     file|dir                 ##改变文件或者目录的用户组

chgrp              -R               group                     dir                      ##递归改变目录的用户组

Linux系统中的权限管理

Linux系统中的权限管理

递归更改目录的组用户

Linux系统中的权限管理

Linux系统中的权限管理Linux系统中的权限管理

5.如何改变文件的权限

1)对权限的理解

r

       对文件:是否可以查看文件中的内容           ---->cat file

       对目录:是否可以查看目录中有什么子文件或者子目录   ------>ls dir

w

        对文件:是否可以改变文件里面记录的字符

        对目录:是否可以对目录中子目录或子文件的元数据进行更改

x

        对文件:是否可以通过文件名称调用文件内记录的内容

        对目录:是否可以进入目录i

2)更改方式

chmod     <u|g|o><+|-|=> <r|w|x>       file|dir

chmod      u+x             /mnt/file1

chmod       g-r             /mnt/file2

chmod        ug-r          /mnt/file3

chmod       u-r,g+x       /mnt/file4

chmod       -r               /mnt/file5

chmod        o=r-x         /mnt/file6

示例:

Linux系统中的权限管理

Linux系统中的权限管理

6.umask

umask     系统建立文件是默认保留的权力

umask      077    ##临时设定系统保留权限为077

 

永久更改umask

vim  /etc/profile

Linux系统中的权限管理

vim  /etc/bashrc        ##shell配置文件

Linux系统中的权限管理

让更改立即生效

Linux系统中的权限管理

7.特殊权限

1)sticky             ##粘制位

作用:

                只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件之能被文件所有者删除

设定方式:

                chmod  o+t       dir

                chmod  1xxx      dir

示例:用户tom和leo分别在/pub中创建两个文件,在没有执行粘制位操作时leo可以删除tom创建的文件,执行粘制位操作后,只能各自删除各自创建的文件

Linux系统中的权限管理

Linux系统中的权限管理

Linux系统中的权限管理

Linux系统中的权限管理

2)sgid        ##强制位

设定方式:

              chmod      g+s         file|dir

              chmod      2xxx         file|dir

作用:

              对文件: 只针对二进制可执行的文件,当文件上有sgid时任何人执行此文件所产生的进程都属于文件的组

       对进程的监控 ps -ax -o user,group,comm | grep watch

过程:1.ls -l /bin/watch

          2./bin/watch -n 1 date    运行一个进程

          3.运行ps -ax -o user,group,comm | grep watch对过程进行监控

          4.chgrp tom /bin/watch    改变用户组为tom

          5.运行ps -ax -o user,group,comm | grep watch,发现用户组并未改变,还是root

Linux系统中的权限管理Linux系统中的权限管理

           6.chmod  2777 /bin/watch   赋予文件强制位权限

Linux系统中的权限管理

           7./bin/watch -n 1 date

           8.ps -ax -o user,group,comm | grep watch          用户组变成了tom

Linux系统中的权限管理

              对目录: 当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所在组

示例:

用watch -n 1 'ls -ld /westos;ls -l /westos'进行监控

Linux系统中的权限管理

Linux系统中的权限管理

Linux系统中的权限管理

改变用户组之后,/westos的用户组变为tom

Linux系统中的权限管理

但新建立的文件的用户组仍为root,针对这一问题执行以下操作

Linux系统中的权限管理

再创建file1时,用户组成为了tom

Linux系统中的权限管理
 

3)suid        ##冒险位

设定方式:

                chmod          u+s           file

                 chmod         4xxx           file

作用:只针对二进制可执行文件,当文件上有suid时任何人执行这个文件中程序产生的进程都属于文件的所有人

Linux系统中的权限管理

将用户改为leo,发现拥有者仍为root,执行以下指令解决这个问题

Linux系统中的权限管理

再次运行用户改为leo

Linux系统中的权限管理

将用户切换为tom,运行watch,发现拥有者仍为leo

Linux系统中的权限管理

Linux系统中的权限管理

8.acl权限列表

1)作用

             让特定的用户对特定的文件拥有特定的权限

2)acl列表查看

Linux系统中的权限管理

getfcal      file                ##查看acl开启的文件的权限

#file :file                     ## 文件名称

#owner:root                ##文件拥有者

#group :root                ##文件拥有组

user::rw-                  ##文件拥有人的权限

user:kisok:rwx           ##指定用户的权限

group::r--                 ##文件拥有组的权力

mask::rwx                 ##能赋予用户的最大权力伐值

other::r--                   ##其他人的权限

3)acl列表的管理

getfacl        file          

setfacl        -m   u:username:rwx   file        ##设定username对file拥有的rwx权限

setfacl        -m   g:group:rwx         file        ##设定group组成员对file拥有rwx权限

setfacl         -x    u:username        file        ##从acl列表中删除username

setfacl         -b     file                                ##关闭file上的acl列表

Linux系统中的权限管理

Linux系统中的权限管理

从列表中删除:

Linux系统中的权限管理

关闭acl列表

Linux系统中的权限管理

‘+’号消失不见,acl列表关闭

4)mask值

在权限列表中mask标示能生效的权力值

当用chmod减小开启acl的文件权限时mask值会发生改变

chmod     g-w        westos

如果要恢复mask值

setfacl -m m:rw   westos

示例:

使用watch命令监视:

Linux系统中的权限管理

修改之前:

Linux系统中的权限管理

修改之后:mask值也随之变化

Linux系统中的权限管理

Linux系统中的权限管理

恢复mask值:

Linux系统中的权限管理

5)acl的默认的权限设定

acl默认权限只针对目录设定

“acl权限只针对设定完成之后新建立的文件或目录生效,而已经存在的文件是不会继承默认权限“

setfacl  -m   d:u:student:rwx     /mnt/westos

setfacl   -k     /mnt/westos

设定默认权限:

Linux系统中的权限管理

对于已经存在的文件:

Linux系统中的权限管理

结果表示没有继承权限。

对于新建立的文件:

Linux系统中的权限管理

结果表示继承了权限。

补充:权限大小的比较

userperm > acluser > aclgroup > groupperm > otherperm