Linux
配置 SELINUX 以允許記錄到 /var/log 之外的文件
我有一個使用 syslog(3) 記錄到不是 /var/log 後代的文件的守護程序。目前,這需要禁用 SELINUX。如何配置啟用的 SELINUX 以允許此日誌記錄?
我是一個 SELINUX 新手。任何指導或建議將不勝感激。
如果您查看為目錄 /var/log 設置的上下文,您會注意到以下內容。
首先,該目錄
/var/log
具有以下 selinux 上下文集:$ ls -Z /var | grep "log$" drwxr-xr-x. root root system_u:object_r:var_log_t:s0 log
其次,日誌文件
/var/log/messages
沒有額外的上下文:$ ls -Z /var/log/messages -rw------- root root ? /var/log/messages
因此,您似乎只需要在
/var/log
您計劃將此附加日誌文件寫入的任何目錄上設置一個類似於該上下文的上下文。像這樣的事情應該這樣做。方法一:複製 selinux 標籤
下面將複製與之關聯的上下文
/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
方法#2:直接應用上下文
您也可以像這樣直接應用它們:
$ chcon system_u:object_r:var_log_t:s0 /opt/blah
我遠離一個可以確認需要執行這些命令的系統,但我相信您需要告訴 SELinux 也將這些新應用的上下文拾取到文件系統。
$ semanage fcontext -a -t var_log_t "/opt(/.*)?" $ restorecon -R -v /opt
確認更改
# 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
參考