Recentemente abbiamo trovato una soluzione alternativa che va così:
/ Etc / ssh / sshd_config:
...
Subsystem sftp internal-sftp
Match Group sftponly
ChrootDirectory /home
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
permessi di directory:
root@server:~ # chown root:root /home
root@server:~ # chmod 111 /home
root@server:~ # chmod 700 /home/*
Ora /homesoddisfa i requisiti per ChrootDirectorye non può essere elencato dagli utenti con restrizioni, ma gli sftponlyutenti non saranno in grado di accedere se le loro home directory sono configurate come al solito ( /home/$LOGNAME): nell'ambiente chroot le loro home directory non sono all'interno /homema direttamente sotto root ( /).
soluzione alternativa 1
Imposta le case degli utenti con restrizioni su come appaiono sotto chroot:
root@server:~ # usermod -d /username username
caveato 1
Se qualcuno degli utenti senza restrizioni o alcuni script di amministrazione usano l'espansione della tilde di bash come ~usernamesi espanderà /usernameora, il che non è ciò che si intende.
Anche l'amministratore che crea gli sftponlyutenti deve ricordare di utilizzare la home non predefinita. Risolvibile con una sceneggiatura. Che l'amministratore deve ricordare di usare.
soluzione alternativa 2
Questa è un'alternativa alla precedente che abbiamo finito per usare:
root@server:~ # ln -s . /home/home
Cioè creare un collegamento simbolico all'interno del /homeproprio dirname. Ora sotto chroot /home/usernamepunta alla stessa directory come senza chroot. Per gli utenti con accesso limitato con sftp sembrerebbe come /username. Questa directory è scrivibile al suo proprietario (utente con restrizioni). L'utente con restrizioni non può elencare il proprio genitore o la home directory di nessuno dei fratelli per nome.
L'unica cosa speciale di un sftponlyutente è la sua partecipazione al sftponlygruppo. Abbiamo trovato più facile gestire la soluzione alternativa 1.
avvertimenti 2
- Non puoi avere l'utente chiamato 'home' con una home directory
/home/home
- Devi stare attento con gli script che attraversano la
/homegerarchia e seguono i collegamenti simbolici.
chrootutenti ed possiedono i loroChrootDirectory? Possono accedervi?