大家在使用RHEL6的时候,用ls -l命令查看文件的权限的时候,你可能会发现,这个权限的表示内容,已经与以前的版本不一样了,后面多了一个点,这个点是干吗的呢?搜索了很久也没有找到答案,很是郁闷啊!于是乎就只能自己慢慢研究。
首先来看看我是如何找到答案的,这个也是我的思路,和大家分享一下。
1、直接在网上搜索,但都找不到答案。
2、怀疑会不会像域名一样,来用个点来表示结尾呢?
3、怀疑这个可能是和权限有关,想到了ACL和SELinux。
4、怀疑和文件系统有关,因为RHEL6已经用了EXT4。
这些都是我想到的,可能和这个点有关的,猜测是可以的,但绝对不能误导别人,所以我就一一来排除和验证,最终得到结果是:
这个点表示的是存在“SELinux的安全标签”!
为什么会这样,我们来看如何得出来的结果。
我们用getenforce来查看SELinux的运行模式
[root@tonyzhang ~]# getenforce
Enforcing
这说明SELinux是启动的,OK,我们来创建个文件
[root@tonyzhang ~]# touch testfile
[root@tonyzhang ~]# ls -l testfile
-rw-r--r--. 1 root root 0 Jan 16 23:06 testfile
我们看到这个文件的权限后面是有点的。
下面我们关闭这个SELinux,然后重新启动系统
[root@tonyzhang ~]# vim /etc/sysconfig/selinux
将
SELINUX=enforcing
改为
SELINUX=disabled
保存退出,重新启动系统。
重新进入系统后,我们再来看一下这个SELinux的运行模式
[root@tonyzhang ~]# getenforce
Disabled
再来创建个文件
[root@tonyzhang ~]# touch testfile1
比较一下这两个文件
[root@tonyzhang ~]# 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@tonyzhang ~]# 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@tonyzhang ~]# 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的安全性提高了。