原创

关于 linux 文件权限控制-SELinux

温馨提示:
本文最后更新于 2019年06月15日,已超过 1,722 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

引言

在linux 系统中,最常见的一个就是文件权限了,什么777,755,等等,如果没有权限,就无法操作相关的文件,那么,linux系统中的权限控制是怎么样的呢?为什么有时候设置了777,还是出现没有权限的情况呢?

自主访问控制(DAC: Discretionary Access Control)

linux 777权限

在讲DAC之前,先讲一讲关于linux中文件的权限情况,通过ls -l命令可以查看到文件的详细情况,以及权限:

tioncico@tioncico-PC:~$ ls -l
总用量 1344
drwxr-xr-x  3 tioncico tioncico    4096 1月   6 10:06 CLionProjects
drwxr-xr-x  3 tioncico tioncico    4096 1月   3 23:22 databases-incognito
drwxr-xr-x  5 tioncico tioncico    4096 6月  11 20:55 Desktop
drwxr-xr-x  4 tioncico tioncico    4096 5月  25 01:58 Documents
drwxr-xr-x  4 tioncico tioncico    4096 5月  18 23:28 Downloads
drwxr-xr-x  3 tioncico tioncico    4096 2月   4 10:11 Music
drwx------  6 mysql    mysql       4096 6月  14 18:42 mysql
drwxr-xr-x  9 tioncico tioncico    4096 6月  11 19:55 PhpstormProjects
drwxr-xr-x  2 tioncico tioncico    4096 12月 23 17:32 Pictures
drwxr-xr-x  6 tioncico tioncico    4096 3月  19 00:25 redis-3.2.13
drwxr-xr-x 13 tioncico tioncico    4096 6月  15 11:21 swoole-src-4.3.5
-rw-r--r--  1 tioncico tioncico 1312699 6月  15 11:11 v4.3.5.tar.gz
drwxr-xr-x  2 tioncico tioncico    4096 12月 23 17:42 Videos
drwxr-xr-x  9 tioncico tioncico    4096 6月  15 17:20 work
drwxr-xr-x  2 tioncico tioncico    4096 12月 23 17:32 模板

在第一列中,d代表该文件是一个目录,其他9个字符,分别代表了,如果字符为-则代表没有权限:

1:所属用户是否拥有读权限,所属用户是否拥有写权限,所属用户是否拥有执行权限

2:所属用户组是否拥有读权限,所属用户组是否拥有写权限,所属用户组是否拥有执行权限

3:其他用户是否拥有读权限,其他用户是否拥有写权限,其他用户是否拥有执行权限

只要拥有权限,就代表着能够操作该文件

例如:

当前用户想进入mysql用户,由于tioncico用户没有权限,则进入失败:

tioncico@tioncico-PC:~$ w
 22:01:58 up 1 day,  3:19,  1 user,  load average: 0.53, 0.70, 0.77
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
tioncico tty1     :0               五18   27:19m 19:19  19.27s /usr/bin/startdde
tioncico@tioncico-PC:~$ cd mysql/
bash: cd: mysql/: 权限不够

但是,超级管理员,拥有者所有权限,可以直接进入:

仙士可博客

理论上,超级管理员拥有者最高权限,不管该文件权限如何,超级管理员都是可以操作的

root@tioncico-PC:/home/tioncico# cd mysql/
root@tioncico-PC:/home/tioncico/mysql# cd ../
root@tioncico-PC:/home/tioncico# chmod -R 000 mysql/
root@tioncico-PC:/home/tioncico# cd mysql/
root@tioncico-PC:/home/tioncico/mysql# cd ../
root@tioncico-PC:/home/tioncico# chmod -R 700 mysql/

DAC

DAC  权限控制系统针对的是某个用户

系统将识别用户,根据该文件存储的权限情况(777),来决定该用户能不能操作这个文件,linux在大多数情况,都是使用的DAC权限控制

DAC权限控制的缺点有:

1:超级管理员拥有者最高权限,不管有没有权限,超级管理员都可以访问

2:该权限控制系统针对的是用户,无法将一组文件设置一个统一的权限开放给一组用户,DAC 只有文件拥有者,文件所属组,以及其他用户这3种区分

强制访问控制(MAC: Mandatory Access Control)

MAC是为了弥补DAC权限控制过于分散的问题而诞生的。在MAC的设计中,每一个对象都都有一些权限标识,每个用户同样也会有一些权限标识,而用户能否对该对象进行操作取决于双方的权限标识的关系,这个限制判断通常是由系统硬性限制的。比如在影视作品中我们经常能看到特工在查询机密文件时,屏幕提示需要“无法访问,需要一级安全许可”,这个例子中,文件上就有“一级安全许可”的权限标识,而用户并不具有。

正文到此结束
本文目录