Beschränken des Remote-Benutzers auf ein einziges Verzeichnis in 10.11

Ich muss remote angemeldete Benutzer darauf beschränken, nur in einem Verzeichnis zu bleiben, also dachte ich, ich sollte dieses Problem über SFTP oder SSH angreifen, also habe ich nachgefragt

Beschränken Sie den sftp-Benutzer auf ein einziges Verzeichnis in El Capitan .

Aber da sshd_configjede Komponente im Verzeichnispfad root gehören muss, ist diese Anforderung in unserem Fall nicht einmal möglich. Ich denke also, dass sowohl SSH als auch SFTP nicht die Lösung sind.

Welchen anderen Ansatz kann ich wählen, um diese Aufgabe zu erledigen?

PS: Nach weiterem Lesen denke ich, dass /bin/bash -rdies der Weg nach vorne sein könnte. Ich bin mir nicht sicher, ob ich das standardmäßige sshLaden einrichten kann ./sh/bash -r

/bin/bash -rPS: Versucht , im Anmelde-Shell-Feld in den erweiterten Optionen des Benutzers in Benutzer & Gruppen anzugeben . Jetzt kann sich der Benutzer nicht einmal mehr anmelden; Passwortabfrage kommt immer wieder. In system.logbekomme ich

PAM: authentication error for illegal user

Wenn Sie die -rOption entfernen, kann sich der Benutzer anmelden. Ich denke, ein bisschen mehr Konfiguration sshd_configoder /etc/pam.d/sshdwird den Job erledigen ....

/bin/rbashSie können versuchen, es als Shell für einen Benutzer hinzuzufügen . Es könnte helfen, da das vorherige möglicherweise falsch geparst wurde. Aber ich glaube nicht, dass das sftpunter diesen Einstellungen funktionieren würde (vielleicht internal-sftp?), Aber dafür sshkönnte es eine Teillösung sein. Übrigens, um die Bedeutung der Anforderungen „Root-Besitzer“ zu verstehen, sollten Sie CVE-2009-2904 überprüfen
In OS X gibt es keine rbash-Shell .... Als ich nach der Manpage für bash gesucht habe, heißt es, dass -r für eingeschränkt verwendet werden soll. Ähm ... Kann ich vielleicht "/bin/bash -r" aliasieren und es stattdessen auslösen?
Ja. Es lohnt sich es auszuprobieren.
Ich habe es versucht. Ich habe: /rbash.sh Exec-Formatfehler Ich muss aufgeben.
Bitte posten Sie genau das, was Sie in die Datei und an den Benutzer eingegeben haben.
In /rbash.sh habe ich "/bin/bash -r" ohne Anführungszeichen eingefügt. Nichts für den Benutzer, da er sich normal anmelden und Bash verwenden kann. Nachdem ich mich angemeldet hatte, führte ich /rbash.sh aus und bekam wirklich eine eingeschränkte Bash; kann nicht cd.
Sie sollten Shebang nicht vergessen: #!/bin/bashoder so in der ersten Zeile, und die zweite Zeile sollte die Argumente wie erbenexec /bin/bash -r "$@"

Antworten (1)

Erstellen Sie eine Datei /bin/rbash, machen Sie sie ausführbar und legen Sie sie als Shell für diesen neu erstellten Benutzer fest:

#!/bin/bash
exec /bin/bash -r "$@"

Der Benutzer sshist eingeschränkt, wie die Handbuchseite für Bash im Abschnitt "EINGESCHRÄNKTE SHELL" beschreibt.

Am wichtigsten ist, dass das "Beenden" nach dem Einloggen in die eingeschränkte Bash nicht zu einer nicht eingeschränkten Bash springt! Es bricht komplett ab! Ja!
Ich habe es ohne den Ausgang in der dritten Zeile versucht.
Die dritte Zeile sollte nie ausgeführt werden, da bash -rget exec-ed. Oder was meintest du mit deinem ersten Kommentar?
Ich habe keine Ahnung, wie OS X /rbash lädt .... Ich dachte, vielleicht lädt OSX zuerst das richtige /bin/bash und dann /rbash. Wenn ja, obwohl ich am Ende eine eingeschränkte Bash habe, könnte mich die Eingabe von "exit" zurück zu /bin/bash bringen, was diese ganze Übung sinnlos macht. Ich habe mich jedoch als falsch erwiesen; OSX lädt /rbash direkt!
* Kein Weg ist so, wie Sie geschrieben haben, aber mit wird execdas Original bashdurch "ersetzt" rbashund es gibt keine Möglichkeit, zum nicht eingeschränkten "zurückzukehren" bash.