J'ai un démon qui utilise syslog (3) pour se connecter à un file qui n'est pas un descendant de / var / log. Actuellement, cela nécessite que SELINUX soit désactivé. Comment puis-je configurer un SELINUX activé pour autoriser cette connection?
Je suis un novice SELINUX. Toute orientation ou conseil serait apprécié.
Si vous regardez le context défini pour le directory / var / log, vous remarquerez les choses suivantes.
Tout d'abord, le directory /var/log
a le jeu de context selinux suivant:
$ ls -Z /var | grep "log$" drwxr-xr-x. root root system_u:object_r:var_log_t:s0 log
Deuxièmement, le file journal, /var/log/messages
, n'a pas de context supplémentaire:
$ ls -Z /var/log/messages -rw------- root root ? /var/log/messages
Il semblerait donc que vous ayez uniquement besoin de définir un context similaire à celui de /var/log
sur le directory auquel vous prévoyez d'écrire ce file journal supplémentaire. Quelque chose comme ça devrait le faire.
Vous copyrez ci-dessous le context associé à /var/log
et l'appliquerez également à /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
Vous pouvez également les appliquer directement comme ceci:
$ chcon system_u:object_r:var_log_t:s0 /opt/blah
Je suis loin d'un système où je peux confirmer la nécessité d'exécuter ces commands, mais je crois que vous devez dire à SELinux de ramener ces contexts nouvellement appliqués au système de files.
$ 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