Il modo migliore per farlo è creare una prigione chroot per l'utente. Pulirò la risposta qui quando torno a casa ma ho pubblicato la soluzione sul mio blog.
https://thefragens.com/chrootd-sftp-on-mac-os-x-server/
Di seguito sono riportate la maggior parte delle istruzioni dal post sopra.
Innanzitutto, è necessario creare il nuovo utente in Workgroup Admin e assegnare loro i privilegi di accesso per SSH tramite Server Admin o assegnarli a un gruppo che dispone dei privilegi di accesso SSH. Ulteriori discussioni sono di seguito.
Dal terminale, iniziare a destra.
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
Ogni nuovo utente aggiuntivo aggiunto sarà quindi qualcosa sulla falsariga di quanto segue.
sudo mkdir -p /chroot/user2/scratchpad
sudo chown root /chroot/user2
sudo chown user2 /chroot/user2/scratchpad
sudo chmod -R 755 /chroot/user2
Ogni cartella in cui si trova il percorso verso il carcere chroot deve essere di proprietà root
. Non credo sia importante il gruppo in cui si trova la cartella. Quello che ho fatto sopra era
- di riserva
/etc/sshd_config
- cambia la proprietà della directory principale in
root
- modifica le autorizzazioni della directory principale su 755
- crea una cartella chroot
- crea una cartella utente all'interno della cartella chroot
- creare una cartella all'interno della cartella dell'utente che l'utente può modificare
- impostare la proprietà e le autorizzazioni
Ora per modificare /etc/sshd_config
a quanto segue.
#Subsystem sftp /usr/libexec/sftp-server
Subsystem sftp internal-sftp
Match User user
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/user
Questo crea una prigione chroot che quando l'utente accede li lascerà cadere nella cartella /chroot/user
, in quella cartella c'è una cartella a cui possono aggiungere cose /chroot/user/scratchpad
.
Se desideri creare un gruppo nell'amministratore del gruppo di lavoro per "Utenti chroot", aggiungi i nuovi utenti che hai creato nell'amministratore del gruppo di lavoro al gruppo, non dovrai continuare a modificare il /etc/sshd_config
file. Invece di quanto sopra, aggiungi quanto segue. Assicurati di aggiungere il gruppo "Utenti chroot" all'ACL di accesso SSH in Server Admin.
Match Group chrootusers
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/%u
Per verificare se quanto sopra funziona, emettere quanto segue dal terminale.
$ sftp user@domain.com
Password:
sftp>