Jadi saya menggunakan instalasi VPS - CentOS Linux. Saya memiliki vsFTPd di server. Saat ini saya memiliki akses SFTP ke server melalui pengguna root saya, tetapi sekarang saya mencoba untuk membuat pengguna baru dengan akses FTP ke direktori tertentu hanya di server, saya telah melakukan hal berikut:
1. mkdir /var/www/mydomain.com
2. mkdir /var/www/mydomain.com/html
3. useradd <-username>
4. passwd <-username>
5. chown –R <-username> /var/www/mydomain.com
5. groupadd <-groupname>
6. gpasswd -a <-username> <-groupname>
7. chgrp -R <-groupname> /var/www/mydomain.com
8. chmod -R g+rw /var/www/mydomain.com
Apa yang saya coba lakukan adalah membuat pengguna HANYA memiliki akses ke /var/www/mydomain.com
- Saya mengamati bahwa pengguna dengan benar masuk ke folder yang benar, namun pengguna kemudian dapat menelusuri "kembali" ke direktori lain. Saya ingin pengguna menempel di folder tertentu dan tidak dapat "menelusuri" kembali .
Ada ide?
Saya telah menemukan berbagai artikel tentang chroot, tetapi tidak menemukan cara untuk menggunakannya dalam langkah-langkah yang termasuk di atas.
Jawaban:
Sederhana saja.
Anda harus menambahkan opsi berikut pada file vsftpd.conf
Dokumentasi di dalam file konfigurasi cukup jelas:
Ini berarti, bahwa pengguna hanya akan memiliki akses pada folder yang Anda konfigurasi sebagai HOME dari pengguna. Di bawah ini, saya punya contoh entri passwd pengguna:
Atur direktori home pengguna dengan perintah berikut
Catatan: Dalam contoh saya, pengguna ini juga merupakan pengguna yang valid untuk beberapa tugas terjadwal di Linux. Jika Anda tidak memiliki kebutuhan ini, silakan ganti shell pengguna
/sbin/nologin
sebagai gantibash
.sumber
/etc/passwd
file, yang mewakili pengguna yang bernama upload_ftp, 1001: 1001 adalah ID Pengguna dan ID Grupnya, / var / www / sites adalah direktori home dari pengguna (dan parameter yang dibaca vsftpd) dan / bin / bash, shell. Mungkin apa yang hilang pada kasus Anda adalah direktori home untuk pengguna, dan itu bisa diselesaikan dengan perintah berikut:usermod -d /var/www/mydomain.com <username>
. Cheers :)Setelah Anda mengubah konfigurasi Anda untuk disertakan
chroot_local_user=YES
Anda dapat mengubah shell pengguna
/usr/sbin/nologin
sehingga jika kata sandi bocor Anda akan mengurangi risiko (atur direktori home juga). Shell perlu didaftar/etc/shells
juga atau otentikasi akan gagal.https://security.appspot.com/vsftpd/FAQ.txt
sumber
Berikut adalah langkah-langkah untuk mengatur pengguna dan memungkinkan akses pengguna hanya melalui FTP (yaitu tidak ada SSH) dan juga membatasi akses ke direktori (rumah pengguna) tertentu di proftpd :
Tambahkan pengguna baru:
adduser newusername
Setel Kata Sandi:
passwd newusername
Ubah direktori home pengguna dari default ke folder baru:
usermod -d /target/directory username
Edit
shells
file:vi /etc/shells
dan tambahkan/dev/null
di akhirUbah
newusername
entri dalampasswd
file:vi /etc/passwd
untuk menambahkan/./
sebelumnewusername
entri sehingga terlihat seperti ini:newusername:x:502:502::/home/ftp/./newusernamehomedirectory/:/dev/null
Detail untuk langkah 4 & 5 di sini:
Edit
/etc/proftpd/proftpd.conf
file dan batalkan komentar pada barisDefaultRoot ~
sumber
Atur izin folder root ke 711 dengan akun root Anda.
sumber
Jalankan perintah ini:
sumber