Jawaban:
Pastikan baris berikut ada
chroot_local_user=YES
Setel direktori HOME pengguna ke /var/www/
, jika Anda ingin mengubah untuk pengguna yang ada maka Anda dapat menggunakan:
usermod --home /var/www/ username
kemudian atur izin yang diperlukan pada /var/www/
user_sub_token
Jika Anda tidak ingin mengubah direktori Beranda pengguna maka Anda dapat menggunakan:
chroot_local_user=YES
local_root=/ftphome/$USER
user_sub_token=$USER
user_sub_token
:Secara otomatis menghasilkan direktori home untuk setiap pengguna virtual, berdasarkan pada templat. Misalnya, jika direktori home dari pengguna asli yang ditentukan melalui guest_username adalah / ftphome / $ USER, dan user_sub_token disetel ke $ USER, maka ketika tes pengguna virtual masuk, ia akan berakhir (biasanya chroot () diedit) di direktori / ftphome / test. Opsi ini juga berlaku jika local_root berisi user_sub_token.
Buat direktori dan atur izin:
mkdir -p /ftphome/{test,user1,user2}
chmod 770 -R /ftphome
chown -R ftp. /ftphome
usermod -G ftp test
Setelah restart vsftpd
dan uji pengaturan Anda.
Contoh keberhasilan keluaran:
[root@mail tmp]# ftp localhost
Connected to mail.linuxian.local.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mput vhosts
mput vhosts?
227 Entering Passive Mode (127,0,0,1,146,41)
150 Ok to send data.
226 File receive OK.
24 bytes sent in 3.3e-05 seconds (7.1e+02 Kbytes/s)
ftp> ls -rlt
227 Entering Passive Mode (127,0,0,1,97,90)
150 Here comes the directory listing.
-rw-r--r-- 1 787 787 24 Oct 11 19:57 vhosts
226 Directory send OK.
ftp> 221 Goodbye.
$USER
untuk local_root
, seperti /home/$USER/ftp
(yang akan chroot pengguna ke ftp
subdirektori direktori home mereka).
local_root
ke direktori home pengguna yang sebenarnya.
Kamu bisa melakukan ini:
usermod --home /var/www/ username
Saya menggunakan saran Rahul Patil di atas:
chroot_local_user=YES
local_root=/home/$USER/www-data
user_sub_token=$USER
Tetapi saya tidak mengerti mengapa saya hanya bisa masuk dengan satu pengguna. Kemudian saya menemukan bahwa kami tidak dapat melakukan chroot ke direktori root (untuk kasus ini, /home/$USER/www-data
) yang memiliki akses tulis. Jadi saya menghapus akses tulis dengan:
# chmod a-w /home/$USER/www-data
CATATAN: ubah $USER
dengan pengguna Anda.
Periksa chroot
opsi vsftpd.conf
dan buat pengguna terpisah untuk homedir yang diatur untuknya /var/www
.
chroot
opsivsftpd.conf
dan buat pengguna terpisah untuk homedir yang diatur untuknya/var/www
.