Linux shell 文件权限相位点的含义

大家在使用RHEL6的时候,用ls -l命令查看文件的权限的时候,你可能会发现,这个权限的表示内容,已经与以前的版本不一样了,后面多了一个点,这个点是干吗的呢?搜索了很久也没有找到答案,很是郁闷啊!于是乎就只能自己慢慢研究.
点击查看原图

首先来看看我是如何找到答案的,这个也是我的思路,和大家分享一下.

1、直接在网上搜索,但都找不到答案.

2、怀疑会不会像域名一样,来用个点来表示结尾呢?

3、怀疑这个可能是和权限有关,想到了ACL和SELinux.

4、怀疑和文件系统有关,因为RHEL6已经用了EXT4.

这些都是我想到的,可能和这个点有关的,猜测是可以的,但绝对不能误导别人,所以我就一一来排除和验证,最终得到结果是:

这个点表示的是存在“SELinux的安全标签”!

为什么会这样,我们来看如何得出来的结果.

我们用getenforce来查看SELinux的运行模式

[root@master ~]# getenforce

Enforcing

这说明SELinux是启动的,OK,我们来创建个文件

[root@master ~]# touch testfile

[root@master ~]# ls -l testfile

-rw-r--r--. 1 root root 0 Jan 16 23:06 testfile

我们看到这个文件的权限后面是有点的.

下面我们关闭这个SELinux,然后重新启动系统

[root@master ~]# vim /etc/sysconfig/selinux

SELINUX=enforcing

改为

SELINUX=disabled

保存退出,重新启动系统.

重新进入系统后,我们再来看一下这个SELinux的运行模式

[root@master ~]# getenforce

Disabled

再来创建个文件

[root@master ~]# touch testfile1

比较一下这两个文件

[root@master ~]# ls -l testfile*

-rw-r--r--. 1 root root 0 Jan 16 23:06 testfile

-rw-r--r-- 1 root root 0 Jan 16 23:10 testfile1

发现testfile1这个权限的后面没有了点

再来看看这两个文件的安全上下文是什么样的

[root@master ~]# ls -Z testfile*

-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 testfile

-rw-r--r-- root root ? testfile1

关掉了SELinux,创建的文件就没有了这个安全上下文了,也就没有了这个点了.

我们再看看,把SELinux开启,再重新启动电脑,看看这个testfile1的安全上下文会变成什么样?

[root@master ~]# ls -Z testfile*

-rw-r--r--. root root system_u:object_r:admin_home_t:s0 testfile

-rw-r--r--. root root system_u:object_r:admin_home_t:s0 testfile1

重新启动后,这个testfile1文件就自动加上了这个安全标签,而且权限的后面又多了一个点.

至于testfile这个文件的安全上下文为什么会变,我们后面学习SELinux的时候,慢慢来研究了.

可见,我们上面的分析是完全正确的,这也同时说明一个问题,RHEL6的安全性提高了.

发布了40 篇原创文章 · 获赞 2 · 访问量 6万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章