Ich habe mein Problem folgendermaßen gelöst:
Neue Gruppe erstellen
$ sudo addgroup exchangefiles
Das Chroot-Verzeichnis erstellen
$ sudo mkdir /var/www/GroupFolder/
$ sudo chmod g+rx /var/www/GroupFolder/
Erstellen Sie das für Gruppen beschreibbare Verzeichnis
$ sudo mkdir -p /var/www/GroupFolder/files/
$ sudo chmod g+rwx /var/www/GroupFolder/files/
Geben Sie sie beide der neuen Gruppe
$ sudo chgrp -R exchangefiles /var/www/GroupFolder/
danach ging ich zu /etc/ssh/sshd_config
und am Ende der Datei hinzugefügt:
Match Group exchangefiles
# Force the connection to use SFTP and chroot to the required directory.
ForceCommand internal-sftp
ChrootDirectory /var/www/GroupFolder/
# Disable tunneling, authentication agent, TCP and X11 forwarding.
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
Jetzt füge ich meiner Gruppe einen neuen Benutzer mit dem Namen Obama hinzu:
$ sudo adduser --ingroup exchangefiles obama
Jetzt ist alles erledigt, also müssen wir den ssh-Dienst neu starten:
$ sudo service ssh restart
Hinweis:Der Benutzer kann jetzt nichts mehr mit file
tun Verzeichnis Ich meine, alle seine Dateien müssen sich im Dateiordner befinden.
Restriktionen sind ein sensibles Thema und müssen konsequent definiert werden. Was Sie tun können, ist, eine eingeschränkte Shell zu definieren für den Benutzer als seine Standard-Shell .
Zum Beispiel die Einstellung /bin/rksh
(eine eingeschränkte Kornshell) anstelle der vordefinierten Shell des Benutzers als Standard-Shell für diesen Benutzer in /etc/profile
.
HINWEIS: Wenn die ausführbare Datei mit diesem Namen auf Ihrem System nicht vorhanden ist, erstellen Sie einen festen Link ln /bin/ksh /bin/rksh
und ksh
bestimmt anhand seines Namens, ob es eingeschränkt ist oder nicht.
Die eingeschränkte Shell wird (zum Beispiel) verhindern, dass ein cd
ausgeführt wird Befehl, oder einen Befehl mit einem /
angeben (ein expliziter Pfad) im Aufruf und verbietet das Ändern von PATH
, SHELL
, oder ENV
Variable, und Ausgabeumleitungen sind ebenfalls verboten.
Sie können immer noch vordefiniert bereitstellen Shell-Skripte an den Benutzer, die (unter der Kontrolle des Skript-Implementierers!) dem Benutzer erlauben, dieses spezifische Skript(e) in einer uneingeschränkten Umgebung auszuführen.
Der Befehl chroot
ermöglicht es Ihnen, ein eingeschränktes Stammverzeichnis für einen Benutzer zu erstellen. Diese Frage erklärt das Konzept von chroot
und wie man es benutzt.
Update:Suche nach Chroot Jail Setup on Digital Ocean , zeigt weitere Dokumentation speziell für ihre Umgebung an. Hier sind ein paar, von denen ich denke, dass sie sich auf das beziehen, was Sie brauchen könnten.
So konfigurieren Sie Chroot-Umgebungen zum Testen auf einem Ubuntu 12.04 VPS
Wie man eingeschränkten SSH-Zugriff für in Chroot eingesperrte Benutzer erlaubt
Hier ist eines, das sich auf Jailkit bezieht, das FloHimself vorgeschlagen hat.