Erlaube Samba und Podman, im selben Verzeichnis zu schreiben.

Erlaube Samba und Podman, im selben Verzeichnis zu schreiben.

Ich bin neu bei SElinux und weiß daher nicht viel über seine Verwendung. Ich möchte meinen Fedora-Server mit einer Samba-Freigabe (bereits konfiguriert und funktionsfähig) ausführen und habe einen Podman-Container konfiguriert, der dasselbe Verzeichnis mountet. Aber während SElinux eingeschaltet ist, kann der Container nicht auf das gemountete Verzeichnis zugreifen. Das Ausschalten von SElinux ( setenforce 0) „löst“ dieses Problem.

Ich habe also derzeit versucht, es public_content_rw_tin diesem Verzeichnis zu verwenden, aber es funktioniert immer noch nicht.

# first try
$ semanage fcontext -a -t samba_share_t "/srv/downloads(/.*)?"
$ restorecon -Rv /srv/downloads

# second try
$ semanage fcontext -m -t public_content_rw_t "/srv/downloads(/.*)?"
$ restorecon -Rv /srv/downloads

In beiden Fällen kann der Podman-Container nicht auf dasselbe Verzeichnis zugreifen. SElinux verhindert dies (logs: setroubleshoot[1232603]: SELinux is preventing java from write access on the directory /srv/downloads). Beispielsweise durch Verwendung von: podman exec -it $CONTAINER ls -l /downloads( /srv/downloads:/downloadsmit rw gemountet).

Ich möchte meinen Server mit SElinux betreiben. Was muss ich konfigurieren, damit beide Prozesse das gleiche Verzeichnis verwenden können?

Antwort1

Da ich neu bei SELinux bin, gibt es weitere Tools, die Ihnen dabei helfen, es herauszufinden. Ich habe dies letzte Woche gefunden. Ein Ausgangspunkt istHier. Hauptsächlich das audit.log mit audit2why und audit2allow. Ich setze enforce auf 0, cp /dev/null über audit.log, führe fehlgeschlagene Befehle aus (die im Permissive-Modus erfolgreich sind, aber trotzdem im Audit-Log protokolliert werden), speichere dann das Log und analysiere es wie im obigen Link. Ich habe diesen Prozess in den letzten Tagen verwendet, um eine benutzerdefinierte Richtlinie für eine Flask/Apache-API zu erstellen, die Python-Unterprozesse ausführt. Also keine konkrete Antwort, aber der Prozess sollte Sie zu einer Lösung führen, wie es bei mir der Fall war.

Antwort2

Wir haben dies gelöst, indem wir das setsebool -P virt_use_sambaFlag aktiviert haben. Dies scheint virtualisierten Instanzen (..und Containern..) den Zugriff auf bereitgestellte Laufwerke zu ermöglichen.

Alte Frage, aber ich habe die Antwort genau an einer Stelle im Internet gefunden und es wäre gut, sie zu verbreiten, falls sie weitere Probleme löst.

verwandte Informationen