在RHEL6中,文件权限后缀点(如“-rw-r--r--.”)表示该文件具有SELinux安全上下文标记,区别于无SELinux管理的普通文件,SELinux安全上下文是一组标签(包括用户、角色、类型和范围),用于强制访问控制(MAC),即使传统权限允许,若进程与文件的SELinux上下文不匹配(如类型不符),访问仍会被拒绝,这种机制通过细化安全策略,增强系统对文件、进程等资源的访问控制能力,防止权限提升等安全风险,是RHEL6系统安全的重要保障。
在RHEL6(Red Hat Enterprise Linux 6)系统中,使用ls -l命令查看文件或目录权限时,有时会在权限字符串的末尾看到一个额外的点(),
-rw-r--r--. 1 root root 1234 Jan 1 12:00 test.txt
这个点并非随机出现,而是具有明确的系统含义——它表示该文件或目录带有SELinux安全上下文标记,本文将详细解释这一点的具体含义、作用及相关背景知识。
文件权限的基本格式回顾
在Linux系统中,ls -l输出的权限字符串格式通常为:

[-/d/l/b/c/s][权限位][链接数][所有者][所属组][大小][修改时间][文件名]
第一个字符表示文件类型(为普通文件,d为目录,l为符号链接等);后续9个字符分为3组,分别代表所有者、所属组及其他用户的读(r)、写(w)、执行(x)权限,例如-rw-r--r--表示:
- 所有者:读写权限(
rw-) - 所属组:只读权限(
r--) - 其他用户:只读权限(
r--)
后缀点(.)的含义:SELinux安全上下文标记
当权限字符串末尾出现一个点()时,它明确指示该文件或目录已启用SELinux(Security-Enhanced Linux)安全策略,且具有有效的安全上下文(Security Context),SELinux是美国国家安全局(NSA)开发的强制访问控制(MAC)系统,通过为每个文件、进程、用户等赋予安全上下文,实现更细粒度的访问控制,增强系统安全性。
SELinux安全上下文的组成
SELinux安全上下文是一个由冒号()分隔的字符串,通常包含4个核心部分:
user:role:type:level
- user(用户身份):定义安全上下文的“用户”角色,如
system_u(系统进程默认用户)、unconfined_u(不受限用户)等。 - role(角色):定义用户能扮演的角色,如
object_r(对象角色,用于文件/目录)、system_r(系统角色)等。 - type(类型):最关键的部分,决定文件/进程的“类型”,如
etc_t(配置文件类型)、httpd_sys_content_t(Web服务内容类型)等,策略通过类型匹配控制访问(如httpd进程只能访问httpd_sys_content_t类型的文件)。 - level(级别):多级安全(MLS)/多类别安全(MCS)中的敏感度级别,如
s0(最低级别)、s0:c1.c2(包含类别c1和c2),用于高安全性场景。
/etc/passwd文件的安全上下文可能为:
unconfined_u:object_r:etc_t:s0
其中type为etc_t,表明它是“配置文件类型”,仅允许特定进程(如systemd、passwd命令)访问。
点(.)的作用:视觉提示
点()是ls -l命令在SELinux开启时提供的视觉标记,用于快速识别文件是否受SELinux策略保护,它的核心作用是:
- 提示管理员:该文件的访问不仅受传统
rwx权限控制,还受SELinux安全上下文约束,即使传统权限允许(如777),若SELinux策略禁止,访问仍会被拒绝。 - 区分ACL与SELinux:若权限字符串末尾是而非,表示文件启用了POSIX ACL(访问控制列表);则明确指向SELinux。
如何查看和管理SELinux安全上下文
查看安全上下文
使用ls -Z命令可查看文件/目录的详细SELinux安全上下文:
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

