
Ich bin neu im SELiunx-Konzept und gemäß derRHEL7 > SELinux Benutzer- und Administratorhandbuch > 3.2. UNBESCHRÄNKTE PROZESSE
Audit-Log
type=IPC msg=audit(1624375715.312:4225): ouid=0 ogid=0 mode=0666 obj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
type=PROCTITLE msg=audit(1624375715.312:4225): proctitle=2F7573722F7362696E2F6874747064002D44464F524547524F554E44
type=AVC msg=audit(1624375724.580:4226): avc: denied { unix_read unix_write } for pid=25626 comm="httpd" key=1392707921 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 tclass=shm permissive=0
type=SYSCALL msg=audit(1624375724.580:4226): arch=c000003e syscall=29 success=no exit=-13 a0=53030951 a1=4338 a2=1b6 a3=6b items=0 ppid=25612 pid=25626 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="httpd" exe="/usr/sbin/httpd" subj=system_u:system_r:httpd_t:s0 key=(null)
Ich habe den httpd so geändert, dass er in der unconfind_t
Domäne ausgeführt wird, aber jetzt kann ich den httpd nicht wieder auf httpd_t
die Domäne ändern.
Ich habe httpd zu unconfined_t
einer Domäne gemacht, damit shmget
die Funktion funktioniert, die von einem von httpd gehosteten PHP-Prozess aufgerufen wird.
[user@rhel7 ~]$ sudo chcon -t bin_t /usr/sbin/httpd
[user@rhel7 ~]$ ls -Z /usr/sbin/httpd
-rwxr-xr-x. root root system_u:object_r:bin_t:s0 /usr/sbin/httpd
[user@rhel7 ~]$ systemctl start httpd.service
.....
[root@rhel7 user]# chcon -r system_r -t httpd_t /usr/sbin/httpd
chcon: failed to change context of ‘/usr/sbin/httpd’ to ‘system_u:system_r:httpd_t:s0’: Permission denied
[root@rhel7 user]#
Antwort1
Sie sollten es einfach ausführen können, restorecon -v /usr/sbin/httpd
um es auf die Standardwerte zurückzusetzen.
Wenn Sie es manuell ändern möchten, müssen Sie httpd_exec_t
als Dateityp verwenden.
Antwort2
Ich hatte ein ähnliches Problem, als ich als Root angemeldet war und unter RH 8.5 eine Datei nicht in ändern konnte unconfined_t
. Mir wurde klar, dass die Verwendung von unconfined_t
nicht der richtige Weg ist, um Probleme zu „beheben“. Der richtige Weg wäre, entweder die Dateien zu einem Teil eines vorhandenen, korrekten Typs zu machen, wie der Benutzer oben vorgeschlagen hat, und dann zu verwenden, semanage fcontext
um diese Änderung dauerhaft zu machen, oder einen neuen Typ und eine neue Sicherheitsrichtlinie zu definieren. In Ihrem Fall brauchten Sie keine neue Richtlinie, weil httpd_t
passt.
Ich habe versucht, den Typ eines neuen Dienstes in zu ändern unconfined_t
. Auch hier hätte ich idealerweise einen ganz neuen Typ und eine neue Richtlinie erstellen sollen, aber das ging über den Rahmen dessen hinaus, was ich tun konnte. Aber:
chcon -t unconfined_t my_file
Die Erteilung der Erlaubnis wurde verweigert.
Für alle anderen, die nach einer Lösung suchen, habe ich Folgendes getan:
# setenforce 0
# chcon -t unconfined_t my_file
# setenforce 1
# getenforce
Enforcing
Ich bin nicht sicher, ob das die richtige Vorgehensweise ist, aber ich konnte dadurch einige Dinge erledigen. Später werde ich eine neue Richtlinie schreiben und mir einen dafür zu verwendenden Typ überlegen.