Wie ändere ich den Sicherheitskontext in einem Verzeichnis in CentOS mit SELinux?

2287
Chloe

Ich habe versucht, es zu ändern, aber das ließ mich nicht.

# ls -dZ /usr/local/spamassassin drwx------. spam spam system_u:object_r:usr_t:s0 /usr/local/spamassassin  # chcon -v --type=spamd_t /usr/local/spamassassin changing security context of `/usr/local/spamassassin' chcon: failed to change context of `/usr/local/spamassassin' to `system_u:object_r:spamd_t:s0': Permission denied 
audit.log
type=AVC msg=audit(1483587389.449:354941): avc: denied { append } for pid=31588 comm="spamd" name="spamfilter.log" dev=xvde ino=24109 scontext=unconfined_u:system_r:spamd_t:s0 tcontext=unconfined_u:object_r:usr_t:s0 tclass=file 

CentOS Release 6.8 (Final)

5

2 Antworten auf die Frage

2
Matthew Sanabria

Sie haben die Berechtigung abgelehnt, weil der Typ spamd_t kein gültiger SELiunx-Typ ist. Möglicherweise müssen einige Pakete installiert werden, um einen gültigen Typ festzulegen. Da bin ich mir nicht sicher Aber ich gehe Ihre Antwort noch einmal durch, um sicherzustellen, dass Sie die besten Praktiken einhalten.


semanage fcontext -a -t spamc_home_t "/usr/local/spamassassin(/.*)?" 

Dies wird eine Regel hinzufügen, um rekursiv den SELinux - Typen zu ändern spamc_home_tfür etwas unter /usr/local/spamassassindem Verzeichnis selbst, einschließlich, aber diese Änderungen werden nicht sofort wirksam.

Damit diese Änderungen sofort wirksam werden, würde ich unmittelbar nach dem obigen Befehl Folgendes ausführen:

restorecon -rv /usr/local/spamassassin 

Dadurch werden die Standard-SELinux-Kontexte basierend auf den Regeln des Systems wiederhergestellt. Im Grunde dasselbe Verhalten, das beim Neustart des Systems oder beim Erstellen einer neuen Datei auftritt. Es ist besser als zu verwenden, chconweil es aus dem Regelsatz liest (den Sie gerade mit dem obigen Befehl modifiziert haben), anstatt eine nicht permanente Ad-hoc-Änderung vorzunehmen.

1
Chloe
# chcon -vR --type=spamc_home_t /usr/local/spamassassin changing security context of `/usr/local/spamassassin/.bash_profile' changing security context of `/usr/local/spamassassin/.bash_logout' changing security context of `/usr/local/spamassassin/.bashrc' changing security context of `/usr/local/spamassassin/spamfilter.log' changing security context of `/usr/local/spamassassin'   # semanage fcontext -a -t spamc_home_t "/usr/local/spamassassin(/.*)?"   # service spamassassin restart Stopping spamd: [ OK ] Starting spamd: [ OK ] 

https://wiki.centos.org/HowTos/SELinux#head-0f6390ddacfab39ee973ed8018a32212c2a02199

ich benutzte

# grep spamd_t /var/log/audit/audit.log | audit2allow 

Das spuckte eine Menge Kontexte in einem Kommentar aus und ich musste nur raten, auf welchen. Ich weiß nicht, wie ich den richtigen auswählen soll.