Risposte:
I sistemi Unix forniscono il chrootcomando che consente di reimpostare l' /utente su una directory nella gerarchia del filesystem, dove non possono accedere a file e directory "di livello superiore".
Tuttavia, nel tuo caso, sarebbe opportuno fornire un chroot virtuale implementato dal servizio di shell remoto. sftp può essere facilmente configurato per limitare un utente locale a un sottoinsieme specifico del filesystem.
quindi nel tuo caso, vuoi chrootdire, utente fooutente nella /var/www/vhosts/directory.
Puoi impostare una directory chroot affinché il tuo utente possa confinarli nella sottodirectory in questo /var/www/vhosts/modo /etc/ssh/sshd_config;
Crea utente foocon password
sudo useradd foo
sudo passwd foo
Crea per solo gruppo SFTP
$ sudo groupadd sftp_users
Aggiungi a un utente fooper il gruppo solo SFTP
$ sudo usermod -G sftp_users foo
Cambia proprietario, perché autorizzazione di lettura / scrittura
sudo chown root.root /var/www/vhosts/
Aggiungi permesso
sudo chmod 755 /var/www/vhosts/
modificare /etc/ssh/sshd_config
sudo vi /etc/ssh/sshd_config
Commenta e aggiungi una riga come di seguito
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Aggiungi alla fine
Match Group sftp_users
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /var/www/vhosts/
ForceCommand internal-sftp
(NOTA: i Matchblocchi devono trovarsi alla fine del sshd_configfile.)
Riavvia il sshservizio
sudo service ssh restart
Con questa cenfigurazione puoi ssh nella cartella ubuntue ottenere file. Impossibile putodelete
Per sftp nella modifica della cartella giusta /etc/passwd. Cambia riga affinché l'utente fooassomigli a questo
$ sudo vi /etc/passwd
..
foo:x:1001:1001::/var/www/vhosts/:
..
Questo cambierà la foocartella home dell'utente nella cartella del tuo server sftp.
Subsystem sftp internal-sftp Match Group sftp ChrootDirectory /var/www/vhosts AllowTcpForwarding no ForceCommand internal-sftpma c'è un errore quando voglio riavviare ssh/etc/ssh/sshd_config line 92: Directive 'UsePAM' is not allowed within a Match block
Match.....sezione alla fine del file. Metti quel codice alla fine del file e riavvialo.
Match Group sftp ChrootDirectory /var/www/vhosts AllowTcpForwarding noIn sshd_config e ho creato l'utente e il gruppo come hai fatto tu, ma l'utentefooha i diritti su tutte le cartelle :(