Der beste Weg, dies zu tun, besteht darin, ein Chroot-Gefängnis für den Benutzer zu erstellen. Ich werde die Antwort hier bereinigen, wenn ich nach Hause komme, aber ich habe die Lösung auf meinem Blog veröffentlicht.
https://thefragens.com/chrootd-sftp-on-mac-os-x-server/
Unten finden Sie die meisten Anweisungen aus dem obigen Beitrag.
Zunächst sollten Sie den neuen Benutzer in Workgroup Admin erstellen und ihm entweder über Server Admin Zugriffsrechte für SSH zuweisen oder ihn einer Gruppe mit SSH-Zugriffsrechten zuweisen. Weitere Diskussion ist unten.
Beginnen Sie vom Terminal aus rechts.
sudo cp /etc/sshd_config /etc/sshd_config.bkup
sudo chown root /
sudo chmod 755 /
sudo mkdir -p /chroot/user/scratchpad
sudo chown -R root /chroot
sudo chown user /chroot/user/scratchpad
sudo chmod -R 755 /chroot
Jeder weitere hinzugefügte Benutzer entspricht dann etwa den folgenden Regeln.
sudo mkdir -p /chroot/user2/scratchpad
sudo chown root /chroot/user2
sudo chown user2 /chroot/user2/scratchpad
sudo chmod -R 755 /chroot/user2
Jedem Ordner muss der Pfad zum Chroot-Gefängnis gehören root
. Ich denke nicht, dass es wichtig ist, in welcher Gruppe sich der Ordner befindet
- Sicherung
/etc/sshd_config
- Ändern Sie den Besitz des Stammverzeichnisses in
root
- Ändern Sie die Berechtigungen des Stammverzeichnisses in 755
- Erstellen Sie einen Chroot-Ordner
- Erstellen Sie einen Benutzerordner im Chroot-Ordner
- Erstellen Sie einen Ordner in dem Benutzerordner, den der Benutzer ändern kann
- Festlegen von Eigentumsrechten und Berechtigungen
Nun zur Bearbeitung /etc/sshd_config
auf folgendes.
#Subsystem sftp /usr/libexec/sftp-server
Subsystem sftp internal-sftp
Match User user
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/user
Dadurch wird ein Chroot-Gefängnis erstellt, in dem der Benutzer, wenn er sich anmeldet, diese in den Ordner ablegt /chroot/user
. In diesem Ordner befindet sich ein Ordner, dem er Dinge hinzufügen kann /chroot/user/scratchpad
.
Wenn Sie in Workgroup Admin eine Gruppe für "Chroot Users" erstellen möchten, fügen Sie die neuen Benutzer, die Sie in Workgroup Admin erstellt haben, der Gruppe hinzu, damit Sie die /etc/sshd_config
Datei nicht weiter bearbeiten müssen . Fügen Sie stattdessen Folgendes hinzu. Stellen Sie sicher, dass Sie der SSH-Zugriffs-ACL in Server Admin die Gruppe "Chroot Users" hinzufügen.
Match Group chrootusers
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/%u
Um zu testen, ob das oben genannte funktioniert, geben Sie Folgendes vom Terminal aus.
$ sftp user@domain.com
Password:
sftp>