我们有一个定制的 Linux 和用户态应用程序,其中包含 libselinux、attr、OpenSSH、systemd、docker-ce 和其他一些应用程序。我们有一个类似于 fedora 的基于 rpm 的构建系统。我们尚未启用 SElinux,但仍然在 ls -l 和 ls -Z 的输出中看到 SElinux 安全上下文,如下所示。
# getenforce
Disabled
输出ls -l /
# ls -l
total 84
drwxr-xr-x. 2 root root 4096 Feb 12 14:45 bin
dr-xr-xr-x. 3 root root 4096 Feb 13 12:04 boot
drwxr-xr-x 20 root root 5120 Feb 13 19:45 dev
drwxr-xr-x. 63 root root 4096 Feb 13 19:45 etc
drwxr-xr-x 3 root root 4096 Feb 13 15:25 ffs
drwxr-xr-x 6 root root 4096 Feb 13 15:31 home
-rwxr-xr-x. 1 root root 111 Feb 7 16:11 init
drwxr-xr-x. 4 root root 4096 Feb 13 11:58 lib
drwxr-xr-x. 3 root root 4096 Feb 13 11:58 lib64
drwx------ 3 root root 16384 Feb 13 12:05 lost+found
drwxr-xr-x. 2 root root 4096 Feb 7 21:43 media
drwxr-xr-x. 18 root root 4096 Feb 13 15:25 mnt
drwxr-xr-x. 6 root root 4096 Feb 13 15:25 opt
dr-xr-xr-x 469 root root 0 Feb 13 19:44 proc
dr-xr-x---. 7 root root 4096 Feb 16 15:58 root
drwxr-xr-x 22 root root 780 Feb 13 19:46 run
drwxr-xr-x. 2 root root 4096 Feb 13 12:00 sbin
drwxr-xr-x. 2 root root 4096 Feb 7 21:43 srv
dr-xr-xr-x 12 root root 0 Feb 13 19:44 sys
drwxr-xr-x. 2 root root 4096 Feb 13 15:25 tftpboot
drwxrwxrwt 11 root root 400 Feb 18 19:24 tmp
drwxr-xr-x. 20 root root 4096 Feb 13 12:02 usr
drwxr-xr-x 27 root root 4096 Feb 13 15:25 var
输出ls -Z /etc/ssh/ssh_config
# ls -Z /etc/ssh/ssh_config
system_u:object_r:container_ro_file_t:s0 /etc/ssh/ssh_config
可以使用以下命令从正在运行的计算机上的文件中删除 SElinux 上下文属性:
setfattr -h -x security.selinux /path
find /path -print0 |xargs -0 -n 1 setfattr -h -x security.selinux
Google 搜索显示了在正在运行的计算机上禁用 SElinux 上下文的结果,而不是在构建时禁用 SElinux 上下文的结果。任何人都可以帮助从构建的角度理解谁在设置这些 SElinux 上下文以及如何在构建时禁用它?如果缺少任何信息并需要添加到问题中,请发表评论。
构建和部署步骤:
- 使用用户空间包构建自定义 Linux。
- 在 x86 机器上安装
- 捕获输出
ls -l /
期望: 的输出ls -l /
不应显示 .(点)权限。