SELinux: restorecon ändert den Kontext nicht in httpd_sys_content_t
832
turrican_34
Ich muss Puppeteer auf einem Centos 7.4.1708-System verwenden, aber wenn ich SELinux auf Enforcing gesetzt habe, erhalte ich AVC-Fehler.
Wenn ich renne, sudo cat /var/log/messagesbekomme ich:
SELinux is preventing /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome from search access on the directory /sys/fs/cgroup/cpuset. ***** Plugin restorecon_source (99.5 confidence) suggests ***************** If you want to fix the label. /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome default label should be httpd_sys_content_t. Then you can run restorecon. Do # /sbin/restorecon -v /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome
Dieselbe Nachricht erscheint vielleicht 6 oder 7 Mal.
Wenn ich jedoch versuche, die obigen Schritte auszuführen, wird der Kontext der Datei von restorecon nicht festgelegt.
Richtlinie festlegen (als root): semanage fcontext -a -t httpd_sys_content_t '/var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome'
Das sieht gut aus, aber dann ... Neuen Kontext in eine Datei setzen: /sbin/restorecon -v /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome
restoreconfunktioniert nicht. Ich bekomme keine Fehler, auch wenn ich es benutze -vv. Ich habe auch zu zwingen versucht, restoreconmit, -Faber das funktioniert auch nicht.
Hier ist der aktuelle Kontext der Dateien: ls -Z /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome Zeigt: -rwxrwxrwx. root root system_u:object_r:nfs_t:s0 /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome
Der aktuelle Kontext ist darauf zurückzuführen, nfs_tdass ich synchronisierte Ordner mit einer nfsvirtuellen Box in Vagrant verwende. Ich kann nicht zu smb wechseln, da es nicht auf beiden Wegen mit einem Windows-Host synchronisiert wird.
Irgendwelche Ideen, wie ich dieses Problem beheben kann? Ich bin jetzt seit fast zwei Tagen dabei.
Hinweis: Wenn ich SELinux auf Permissive gesetzt habe, läuft Puppenspieler / Chromium ohne Probleme.
Vielen Dank :)
Edit: Ich sollte auch erwähnen, dass ich mich httpd_use_nfsgesetzt habe on.
Hier ist ein Pastebin aller meiner SELinux-Booleschen.
Mit dem Rat von @HBruijn versuche ich, mit definiertem Kontext zu mounten, erhalte aber einen Fehler.
AS-Root-Befehl: mount 10.0.0.1:/C/Users/Lee/Desktop/www /var/www -o context="system_u:object_r:httpd_sys_content_t:s0"
Error: mount.nfs: requested NFS version or transport protocol is not supported
Server 10.0.0.1ist mein privater Server in vagrantfile. config.vm.network "private_network", ip: "10.0.0.0"
Der Exportpfad ist derselbe Pfad, den Vagrant verwendet, wenn ein Ordner angehängt wird, vagrant upz 10.0.0.1:/C/path/to/directory.
Irgendwelche Ideen??
1 Antwort auf die Frage
0
HBruijn
Ich denke, Sie versuchen, das Problem am falschen Ende zu lösen. Haben Sie in Betracht gezogen, Ihrem Webserver stattdessen Zugriff auf NFS-Freigaben zu gewähren:
setsebool -P httpd_use_nfs=1
BEARBEITEN Basierend auf Ihrem Kommentar, dass Sie VirtualBox unter Windows ausführen:
Ich denke, Ihr Windows-Host unterstützt keine Kennzeichnung, und der Client (Ihr CentOS) weist dann eine Standardsicherheitsrichtlinie zu nfs_t.
Möglicherweise müssen Sie Ihren bevorzugten Sicherheitskontext als Mount-Option festlegen, um diesen Standard zu überschreiben (im Mount-Befehl oder in / etc / fstab):
# mount server:/export /var/www/html -o context="system_u:object_r:httpd_sys_content_t:s0"
Entschuldigung, ich habe vergessen zu erwähnen, dass ich bereits httpd_use_nfs -> on habe. Ich werde das OP bearbeiten.
vor 6 Jahren
0
Ich habe einen Pastebin von allen meinen anderen SELinux-Booleschen hinzugefügt.
vor 6 Jahren
0
Verstehe ich zu verstehen, dass Sie VirtualBox unter Windows mit einem CentOS-Gastbetriebssystem ausführen?
HBruijn vor 6 Jahren
0
Ja das ist richtig. Verwenden des winnfsd-Plugins, um nfs in Windows zum Laufen zu bringen.
vor 6 Jahren
0
Wenn ich das als root ausführen, erhalte ich folgende Fehlermeldung: `mount.nfs: Server-Server konnte nicht aufgelöst werden: Name oder Dienst nicht bekannt mount.nfs: Vorgang bereits ausgeführt`
turrican_34 vor 6 Jahren
0
Sie müssen den Servernamen und die Pfade von `server: / export / var / www / html` in das ändern, was für Ihr aktuelles Setup relevant ist
HBruijn vor 6 Jahren
0
Von wo würde ich exportieren, wenn meine `/ var / www / html'-Dateien vom Host-Betriebssystem stammen? Muss ich den Host-OS-Ordner mit einem Gastordner synchronisieren, z. B. `/ fromhost / www / html`, dann diesen Pfad als Exportpfad verwenden. `mount server: / fromhost / www / html / var / www / html -o context =" system_u: object_r: httpd_sys_content_t: s0 "`
turrican_34 vor 6 Jahren
0
Die Verwendung von Mount funktioniert aus irgendeinem Grund nicht. Bitte siehe Edit 2 im OP. Der Fehler `mount.nfs: Die angeforderte NFS-Version oder das Transportprotokoll werden nicht unterstützt. '
turrican_34 vor 6 Jahren
0