vsftpd - local_root = / var / www / sites / $ USER tidak ditafsirkan?

11

Ketika saya mencoba untuk terhubung ke server FTP saya mendapatkan: "500 OOPS: tidak dapat mengubah direktori: / home / $ USER / public_html"

  • ketika saya melakukan echo $ USER - saya mendapatkan nama pengguna yang tepat
  • sepertinya $ USER tidak diartikan di dalam /etc/vsftpd.conf saya
  • ketika saya menghapus "local_root = / var / www / sites / $ USER" Saya semuanya bekerja dengan lancar.

Saya menjalankan vsftpd 2.2.2 dan Ubuntu 10.04.1 LTS Release: 10.04 Codename: lucid

Pawel
sumber

Jawaban:

21

Yang perlu Anda gunakan adalah kombo dari user_config_dir dan local_root. Dalam file konfigurasi utama /etc/vsftpd/vsftp.conf Anda memiliki entri seperti:

chroot_local_user=YES
user_config_dir=/etc/vsftpd/users

Di dalam direktori itu (/ etc / vsftpd / pengguna) Anda memiliki file konfigurasi dengan nama yang sama dengan pengguna ($ USER dalam kasus Anda), dan di dalam file yang Anda miliki:

local_root=/var/www/sites/USER
dirlist_enable=YES
download_enable=YES
write_enable=YES

... di mana USER adalah nama sebenarnya (tidak secara harfiah USER atau $ USER).


sumber
2
Pass penting di sini adalah use user_sub_token=$USER:, ini membuat konfigurasi poster asli berfungsi karena variabel $ USER mendapatkan nilai yang bisa digunakan. Lihat komentar saya di jawaban yang lain.
user3450548
5

Anda harus mengatur user_sub_token:

user_sub_token=$USER
local_root=/var/www/sites/$USER
Michaël Witrant
sumber
2
Menyenangkan bahwa ini adalah solusi nyata yang sebenarnya, apa yang ingin dilakukan poster asli sebenarnya dapat diterapkan. Anda dapat menggunakannya juga dalam contoh yang diusulkan lainnya, tetapi Anda tidak perlu mengaktifkannya user_config_dir. Anda bisa melakukannya atau tidak, tergantung selera Anda. Pass penting di sini adalah user_sub_token=$USER, karena ini adalah orang yang mengisi $USERvar dengan sesuatu yang dapat digunakan di dalam conf. Lihat user_sub_tokendeskripsi di halaman manual: "Opsi ini juga berpengaruh jika local_root berisi user_sub_token."
user3450548