Jawaban:
Sistem Unix menyediakan chroot
perintah yang memungkinkan Anda untuk mengatur ulang /
pengguna ke beberapa direktori dalam hierarki sistem file, di mana mereka tidak dapat mengakses file dan direktori "yang lebih tinggi".
Namun dalam kasus Anda, sebaiknya sediakan chroot virtual yang diterapkan oleh layanan shell jarak jauh. sftp dapat dengan mudah dikonfigurasi untuk membatasi pengguna lokal ke bagian tertentu dari sistem file.
maka dalam kasus Anda, Anda ingin chroot
mengatakan, pengguna foo
pengguna ke /var/www/vhosts/
direktori.
Anda dapat mengatur direktori chroot untuk pengguna Anda untuk membatasi mereka ke subdirektori /var/www/vhosts/
seperti di /etc/ssh/sshd_config
;
Buat pengguna foo
dengan kata sandi
sudo useradd foo
sudo passwd foo
Buat untuk grup hanya SFTP
$ sudo groupadd sftp_users
Tambahkan ke pengguna foo
untuk grup hanya SFTP
$ sudo usermod -G sftp_users foo
Ganti pemilik, karena izin baca / tulis
sudo chown root.root /var/www/vhosts/
Tambahkan izin
sudo chmod 755 /var/www/vhosts/
Edit /etc/ssh/sshd_config
sudo vi /etc/ssh/sshd_config
Beri komentar dan tambahkan baris seperti di bawah ini
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Tambahkan yang terakhir
Match Group sftp_users
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /var/www/vhosts/
ForceCommand internal-sftp
(Catatan: Match
blok harus di END dari sshd_config
berkas.)
Mulai kembali ssh
layanan
sudo service ssh restart
Dengan konfigurasi ini Anda dapat masuk ke folder ubuntu
dan mendapatkan file. Tidak bisa put
ataudelete
Untuk sftp di edit folder kanan /etc/passwd
. Ubah baris agar pengguna foo
terlihat seperti ini
$ sudo vi /etc/passwd
..
foo:x:1001:1001::/var/www/vhosts/:
..
Ini akan mengubah foo
folder rumah pengguna ke folder server sftp Anda.
Subsystem sftp internal-sftp Match Group sftp ChrootDirectory /var/www/vhosts AllowTcpForwarding no ForceCommand internal-sftp
tetapi ada kesalahan ketika saya ingin me-restart ssh/etc/ssh/sshd_config line 92: Directive 'UsePAM' is not allowed within a Match block
Match.....
bagian di AKHIR file. Letakkan kode itu di akhir file dan mulai ulang.
Match Group sftp ChrootDirectory /var/www/vhosts AllowTcpForwarding no
In sshd_config dan membuat pengguna dan grup seperti yang Anda lakukan tetapi penggunafoo
memiliki hak untuk semua folder :(