
Nachdem ich nunherausgefunden, dass Dateien den Dateikontext .ssh
benötigenssh_home_t
, jetzt muss ich herausfinden, wie ich SELinux-Regeln verschachteln kann.
Mein erstes Problem ist, dass ich keine Liste mit SELinux-Dateikontexten finden kann, die ihren Verwendungszweck beschreiben. Vielleicht liege ich hier falsch. Ich denke, ich muss drei Dinge in dieser Reihenfolge tun:
- Setzen Sie jedes passende Verzeichnis
/exports/home/$USER
aufnfs_t
ohneauch alle Unterverzeichnisse darunter werden abgeglichen$USER
. Dadurch wird meinem NFS-Server mitgeteilt, dass Home-Verzeichnisse legal exportiert werden dürfen. - Alles Passende
/exports/home/$USER/.*
auf... etwas setzen? Hier wäre eine umfassende Liste mit Beschreibungen hilfreich. Verfügt SELinux über einen Dateikontext, der im Allgemeinen Dateien im Home-Verzeichnis eines Benutzers bezeichnet? - Alles passend einstellen
/exports/home/$USER/\.ssh(/.*)
nuraufssh_home_t
, damit SSHD die Verwendung von zulassen kannauthorized_keys
.
Ich muss alle drei Regeln vom NFS-Server aufrufen. Und ich muss die zweite und dritte Regel aufrufenals Einzelnutzerauf die Dateien dieses einzelnen Benutzers von jedem Host aus, der das Home-Verzeichnis mountet. Denn natürlich hoffe ich, dass ich Root-Rechte auf jedem Host habe, der eines dieser Home-Verzeichnisse mountet. Ein Benutzer erstellt höchstwahrscheinlich Dateien, einschließlich SSH-Dateien, von einem Host aus, der nicht der NFS-Server ist.
AKTUALISIEREN
Ich glaube, ich habe die richtigen Dateikontexte herausgefunden. Jetzt muss ich nur noch die richtigen regulären Ausdrücke herausfinden.
# semanage fcontext -a nfs_t '<regexp 1>'
# semanage fcontext -a user_home_t '<regexp 2>'
# semanage fcontext -a ssh_home_t '<regexp 3>'
Wo
<regexp 1>
bleibt hängen/exports/home/$USER
und geht nicht weiter.<regexp 2>
fängt/exports/home/$USER\.*
ausser fürexports/home/$USER/\.ssh(/.*)?
.<regexp 3>
fängtexports/home/$USER/\.ssh(/.*)?
.
und $USER
ist string-agnostisch (d. h. jeder Benutzer) undErweiterte reguläre Ausdrücke für POSIXscheinen nicht zulässig zu sein.
Antwort1
Eine einfache, verblüffende Antwort:
SELinux hat bereits eine Standardregel für `/export/home/*. Lassen Sie einfach das „s“ weg und das Problem ist gelöst.