Risposte:
I sistemi Unix forniscono il chroot
comando 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 chroot
dire, utente foo
utente 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 foo
con password
sudo useradd foo
sudo passwd foo
Crea per solo gruppo SFTP
$ sudo groupadd sftp_users
Aggiungi a un utente foo
per 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 Match
blocchi devono trovarsi alla fine del sshd_config
file.)
Riavvia il ssh
servizio
sudo service ssh restart
Con questa cenfigurazione puoi ssh nella cartella ubuntu
e ottenere file. Impossibile put
odelete
Per sftp nella modifica della cartella giusta /etc/passwd
. Cambia riga affinché l'utente foo
assomigli a questo
$ sudo vi /etc/passwd
..
foo:x:1001:1001::/var/www/vhosts/:
..
Questo cambierà la foo
cartella home dell'utente nella cartella del tuo server sftp.
Subsystem sftp internal-sftp Match Group sftp ChrootDirectory /var/www/vhosts AllowTcpForwarding no ForceCommand internal-sftp
ma 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 no
In sshd_config e ho creato l'utente e il gruppo come hai fatto tu, ma l'utentefoo
ha i diritti su tutte le cartelle :(