Najlepszym sposobem na to jest utworzenie więzienia chroot dla użytkownika. Oczyszczę tutaj odpowiedź, kiedy wrócę do domu, ale opublikowałem rozwiązanie na moim blogu.
https://thefragens.com/chrootd-sftp-on-mac-os-x-server/
Poniżej znajduje się większość instrukcji z powyższego postu.
Najpierw należy utworzyć nowego użytkownika w Administratorze grupy roboczej i albo przypisać mu uprawnienia dostępu do SSH przez administratora serwera, albo przypisać ich do grupy, która ma uprawnienia dostępu SSH. Dalsza dyskusja znajduje się poniżej.
Z terminalu zacznij od prawej.
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
Każdy dodany nowy użytkownik będzie wtedy miał następującą treść.
sudo mkdir -p /chroot/user2/scratchpad
sudo chown root /chroot/user2
sudo chown user2 /chroot/user2/scratchpad
sudo chmod -R 755 /chroot/user2
Każdy folder, do którego prowadzi ścieżka do więzienia chroot, musi być własnością root
. Nie sądzę, żeby miało znaczenie, w jakiej grupie jest folder. To, co zrobiłem powyżej, było
- utworzyć kopię zapasową
/etc/sshd_config
- zmień własność katalogu głównego na
root
- zmień uprawnienia katalogu głównego na 755
- utwórz folder chroot
- utwórz folder użytkownika w folderze chroot
- utwórz folder w folderze użytkownika, który użytkownik może modyfikować
- ustawić własność i uprawnienia
Teraz przejdź do edycji /etc/sshd_config
.
#Subsystem sftp /usr/libexec/sftp-server
Subsystem sftp internal-sftp
Match User user
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/user
Tworzy to więzienie chroot, które po zalogowaniu się użytkownika upuści je w folderze /chroot/user
, w tym folderze znajduje się folder, do którego mogą dodawać różne elementy /chroot/user/scratchpad
.
Jeśli chcesz utworzyć grupę w Administratorze grupy roboczej dla „użytkowników Chroot”, dodaj nowych użytkowników utworzonych w Administratorze grupy roboczej do grupy, nie będziesz musiał dalej edytować /etc/sshd_config
pliku. Zamiast powyższego dodaj następujące. Upewnij się, że dodałeś grupę „Chroot Users” do listy ACL dostępu SSH w Administratorze serwera.
Match Group chrootusers
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/%u
Aby sprawdzić, czy powyższe działa, wydaj następujące polecenie z terminala.
$ sftp [email protected]
Password:
sftp>