slm*_*slm 10
如果您查看为目录 /var/log 设置的上下文,您会注意到以下内容。
首先,该目录/var/log具有以下 selinux 上下文集:
$ ls -Z /var | grep "log$"
drwxr-xr-x. root root system_u:object_r:var_log_t:s0 log
Run Code Online (Sandbox Code Playgroud)
其次,日志文件 ,/var/log/messages没有额外的上下文:
$ ls -Z /var/log/messages
-rw------- root root ? /var/log/messages
Run Code Online (Sandbox Code Playgroud)
因此,您似乎只需要/var/log在您计划将此附加日志文件写入到的任何目录上设置一个类似于上下文的上下文。像这样的事情应该这样做。
下面将复制与之关联的上下文/var/log并将其应用到/opt/blah。
$ mkdir /opt/blah
$ ls -Z /opt | grep blah
drwxr-xr-x root root ? blah
# label directory with context
$ chcon --reference /var/log /opt/blah
# see the newly added context
$ ls -Z /opt/ | grep blah
drwxr-xr-x. root root system_u:object_r:var_log_t:s0 blah
Run Code Online (Sandbox Code Playgroud)
您也可以像这样直接应用它们:
$ chcon system_u:object_r:var_log_t:s0 /opt/blah
Run Code Online (Sandbox Code Playgroud)
我远离一个可以确认需要运行这些命令的系统,但我相信您还需要告诉 SELinux 将这些新应用的上下文获取到文件系统中。
$ semanage fcontext -a -t var_log_t "/opt(/.*)?"
$ restorecon -R -v /opt
Run Code Online (Sandbox Code Playgroud)
# confirm identical to /var/log context
$ ls -Z /var/ | grep "log$"
drwxr-xr-x. root root system_u:object_r:var_log_t:s0 log
Run Code Online (Sandbox Code Playgroud)