chcon: Kontext von „/usr/sbin/httpd“ konnte nicht geändert werden, Berechtigung verweigert

chcon: Kontext von „/usr/sbin/httpd“ konnte nicht geändert werden, Berechtigung verweigert

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_tDomäne ausgeführt wird, aber jetzt kann ich den httpd nicht wieder auf httpd_tdie Domäne ändern.

Ich habe httpd zu unconfined_teiner Domäne gemacht, damit shmgetdie 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/httpdum es auf die Standardwerte zurückzusetzen.

Wenn Sie es manuell ändern möchten, müssen Sie httpd_exec_tals 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_tnicht 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 fcontextum 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_tpasst.

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.

verwandte Informationen