-rw-------. 1 root root 1696 Jul 16 09:27 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 Aug 16 12:14 at
-rw-r--r--. 1 root root 12 Aug 1 10:48 at_alram
-rw-r--r--. 1 root root 4 Jul 30 16:11 at_task2
-rw-r--r--. 1 root root 0 Jul 20 09:28 cd
-rw-r--r--. 1 root root 0 Oct 8 15:00 cro_test
drwxr-xr-x. 2 root root 6 Jul 16 09:28 Desktop
drwxr-xr-x. 2 root root 6 Jul 16 09:28 Documents
drwxr-xr-x. 2 root root 6 Jul 16 09:28 Downloads
# 请大家思考下 上示 内容是通过那个命令显示出来的? 代表的意义又是什么?
====>>> ls -l 命令
# 我们带着 上述问题 开启 对 Linux 文件权限 知识的带入 :
之前的文章我们简单的 介绍过 文件权限的部分内容,现在我们开始整块儿知识地学习!
# 之前在学习 文件权限的时候 也对 ls -l 展示的内容做过解释,现在再复盘下 :
第一列 : 文件类型
第二列 : 访问权限 ( 实际上一共有 10 位)
第三列 :
* 如果是文件的话就是 1
* 如果是目录的话 : 数字就代表目录里的文件个数 !
第四列 : 所属用户
第五列 : 所属用户组
注 : 所属用户及所属用户组 都不完全代表 该文件就是所属用户或用户组创建
的( 因为 所属用户即用户组 是可以后期改变的!)
第六列 : 文件大小
第七列 : 时间日期
第八列 : 文件名 ( 如果是链接文件的话则会 显示 指向 )
# 关于文件类型在此再做以下解释 :
文件权限 :
# 我们现在只研究 文件权限部分 ; 那文件权限是那部分呢??
===>>> 就是整个 第一部分 ( 把文件类型 和 最后一个 . 去掉 的中间 9 位)
这九位分为 三组 :
===>>>>
第一部分(2-4位) : 代表用户的权限
第二部分(5-7位) : 代表用户组的权限
第三部分(8-10位) : 代表其他人的权限
对于文件权限主要是由 以下 四个字符表示 :
r : 代表 读的权限
w : 代表 写的权限
x : 代表 执行的权限
- : 代表 没有赋予任何权限
# 我们再介绍下 最后一个字符 ( 第 11 个字符 )
用来表示是否有一个可替换的访问控制措施应用在该文件上;
===>> 当为一个 空格 时 :
表示系统没有可替换的访问控制措施
===>> 当为一个 . 时 :
官方 : 代表该文件使用 SElinux 安全上下文,并且 未使用其它的访问控
制措施
通俗 : 代表额外的权限控制策略( 就是除了 r w x 这种权限控制策略
外,还有额外的权限控制策略!! )
示例 :
* rwxrwx---
上示权限代表的是什么 :
===>>> 用户 和 用户组 具有 可读可写可执行的权限
但是 其它用户 什么权限都没有 !!
基于上示,问题来了 : 现在我想让其它用户具备读的权限
怎么解决 :
那我们就是说 笼统意义上 我们把权限改为这
样: rwxrwxr-- 就看可以满足了!!
没错,这样确实解决了提出的问题,但是,要清楚一个问
题就是 : 所谓的 其他人指的是 除了 用户和用户组 的所
有用户都是属于 其它用户的 !
接着,问题来了 : 我想要 其它用户中的某几个用户具有
读的权限!
===>>> 那你上面的 rwxrwxr-- 就不能满足问题的需求了
至此,我们便需要 额外的权限控制策略来帮助
我们完成该问题
其中 额外的权限控制策略 最常见的就是 ACL
ACL : 访问控制列表
那就意味着我们可以把这 其它几个人 放在 ACL 列表中,
让列表有读的权限即可! 就不用给 其它用户 设置 读的权
限( 问题是 给其它用户设置 读的权限 也无法满足呀!)
我们已经有了 rwx 这种控制策略,但是,有时针对于特定的情境下还是无法满足需
求所以就 需要 额外权限控制策略 ( 如上示例 )
===>>> 当为 + 时 :
表示该文件在使用SElinux安全上下文的同时,还混用了其他访问
控制措施(如:访问控制列表ACL)。
# r w x 权限的数字表示方法
其实上图就直接完全总结了!!
会发现 r w x 三种权限 可以用 两种数字进制去表示
我们直接举例( 直接看例子最好理解 )
二进制表示 :
rwxrwxrwx : 111111111
rwxrw-rw- : 111110110
-w-r-xr-- : 010101100
注 : 二进制其实就是说白了, r w x 那个有权限那个就是 1 没有权限就是 0
十进制(八进制)表示 : 我们仍以上示例子举例
rwxrwxrwx : 111 111 111
7 7 7
rwxrw-rw- : 111 110 110
7 6 6
-w-r-xr-- : 010 101 100
2 5 4
注 : 你会很显然的发现 其实 所谓 十进制 就是把二进制转成了 十进制
( 没有什么神奇的!! )
但需要注意的是 我们仍是 以 三位三位一组!!!
# 九位权限的简写表示 :
rwx rwx rwx
user( 用户) group(组) other(其他人)
u g o
* 还有一个 a ( all ) : 代表所有即 user group other
u 、g、 o、 就是缩写表示 !!!
# 针对于 文件的 rwx 和 目录 的 rwx 是有区别的( 意义不一样 ~ )!!
对于文件 :
我们仍举例说明
===>>>
[root@bogon ~]# touch file.sh # 创建一个文件
[root@bogon ~]# ls -l file.sh # 查看文件权限
-rw-r--r--. 1 root root 0 Oct 28 20:44 file.sh
[root@bogon ~]# ./file.sh # 去执行文件,发现没有权限
-bash: ./file.sh: Permission denied
[root@bogon ~]# chmod u+x file.sh # 添加 执行权限
[root@bogon ~]# ./file.sh # 执行文件成功
[root@bogon ~]# ls -l file.sh # 查看文件权限,发现已有 x 执行权限
-rwxr--r--. 1 root root 0 Oct 28 20:44 file.sh # (最后显示的文件 file.sh 其实颜色是加深的)
对于目录 :
X 权限 !
注 : 使用 ls -ld 查看 /home/natash 这个目录的权限
注 : 让 harry 用户 访问 /home/natash 发现 没有权限 ( 废话,你要是理解
/home/natash 的权限你就知道为什么了)
注 : 显然,我们是用 root 用户添加权限的!!( 你用普通用户添加权限试试??)
会发现我们权限添加是 o + x
( x 权限 针对目录 就不再是 执行的意思了,是 访问的意思! )
注 : 显然, harry 可以访问 /home/natash 了!!
r 权限
注 : 当我们在 harry 用户下,在 访问 natash 的家目录成功后,想要查看 家目录下的内
容时,发现 没有权限!!
( 因为刚才只是添加了 o+x, 并没有 r 的权限!)
注 : 还是在 root 下( 当然了也只能在 root 下)
添加 o + r ( 加 r 权限 )
w 权限
注 : 发现无法在 natash 家目录下 创建文件 !!
( 都没有 w 权限当然不行了!!)
root 用户下 添加 w 权限
创建成功,并展示出来!!
这就是 w 权限的作用!!