CentOS/RHEL:更改/复制文件SELinux安全上下文命令

时间:2020-01-09 10:43:20  来源:igfitidea点击:

我创建了一个文件,如下所示:

ls -l -Z /etc/cron.d/vnstat
-rw-r–r–. root root system_u:object_r:system_cron_spool_t:s0 /etc/cron.d/vnstat

我创建了一个新文件/etc/cron.d/vnstat.custom.interface:

ls -l -Z /etc/cron.d/vnstat.custom.interface
-rw-r–r–. root root unconfined_u:object_r:system_cron_spool_t:s0 /etc/cron.d/vnstat.custom.interface

/etc/cron.d/vnstat是默认vnstat软件包的一部分。

但是,由于SELinux安全性,cron作业未运行。
如何在/etc/cron.d/vnstat.custom.interface文件的unconfined_u:object_r:system_cron_spool_t:s0中将RHEL/CentOS 6 Linux服务器下的SELinux安全文件更改为system_u:object_r:system_cron_spool_t:s0?
您需要使用chcon命令来更改FILE的SELinux安全上下文。
语法如下:

chcon --reference=/path/to/existingfile /path/to/a/newfile

或者

chcon CONTEXT /path/to/a/newfile

语法#1示例

第一种语法易于使用,并建议所有用户使用:

# cd /etc/cron.d/
# chcon --reference=vnstat vnstat.custom.interface

验证新的上下文,执行:

# ls -Z vnstat*

输出示例:

-rw-r--r--. root root system_u:object_r:system_cron_spool_t:s0 vnstat
-rw-r--r--. root root system_u:object_r:system_cron_spool_t:s0 vnstat.custom.interface

语法2示例

首先,查看现有上下文,执行:

# cd /etc/cron.d/
# ls -Z vnstat

输出示例:

-rw-r--r--. root root system_u:object_r:system_cron_spool_t:s0 vnstat

使用以下语法复制system_u:object_r:system_cron_spool_t:s0上下文:

# chcon system_u:object_r:system_cron_spool_t:s0 vnstat.custom.interface

验证相同,执行:

# ls -Z vnstat*

输出示例:

-rw-r--r--. root root system_u:object_r:system_cron_spool_t:s0 vnstat
-rw-r--r--. root root system_u:object_r:system_cron_spool_t:s0 vnstat.custom.interface