vsftpd - local_root = / var / www / site / $ USER không được giải thích?


11

Khi tôi đang cố gắng kết nối với máy chủ FTP, tôi nhận được: "500 OOPS: không thể thay đổi thư mục: / home / $ USER / public_html"

  • khi tôi lặp lại $ USER - Tôi nhận được tên người dùng phù hợp
  • có vẻ như $ USER không được giải thích bên trong /etc/vsftpd.conf của tôi
  • khi tôi xóa "local_root = / var / www / site / $ USER", mọi thứ đều hoạt động trơn tru.

Tôi đang chạy vsftpd 2.2.2 và Ubuntu 10.04.1 LTS Phát hành: 10.04 Tên mã: lucid

Câu trả lời:


21

Những gì bạn cần sử dụng là một kết hợp của user_config_dir và local_root. Trong tệp cấu hình chính /etc/vsftpd/vsftp.conf bạn có một mục như:

chroot_local_user=YES
user_config_dir=/etc/vsftpd/users

Trong thư mục đó (/ etc / vsftpd / users) bạn có một tệp cấu hình có cùng tên với người dùng ($ USER trong trường hợp của bạn) và bên trong tệp đó bạn có:

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

... trong đó USER là tên thực tế (không phải theo nghĩa đen là USER hoặc $ USER).


2
Vượt qua quan trọng ở đây là use : user_sub_token=$USER, điều này làm cho cấu hình poster gốc hoạt động vì biến $ USER có giá trị sử dụng được. Xem bình luận của tôi trong câu trả lời khác.
dùng3450548

5

Bạn phải đặt user_sub_token:

user_sub_token=$USER
local_root=/var/www/sites/$USER

2
Thật vui vì đây là giải pháp thực tế thực sự, những gì người đăng ban đầu muốn làm đã thực sự được áp dụng. Bạn cũng có thể sử dụng nó trong ví dụ được đề xuất khác, nhưng bạn không cần thiết phải bật user_config_dir. Bạn có thể làm nó hoặc bạn không thể, tùy thuộc vào khẩu vị của bạn. Vượt qua quan trọng ở đây là user_sub_token=$USER, bởi vì đây là người lấp đầy $USERvar với thứ gì đó có thể sử dụng được trong conf. Xem user_sub_tokenmô tả trong trang man: "Tùy chọn này cũng có ảnh hưởng nếu local_root chứa user_sub_token."
dùng3450548
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.