<![CDATA[Latest posts for the topic "Cải tiến một chút về cấu hình vsftpd với virtual user"]]> /hvaonline/posts/list/24.html JForum - http://www.jforum.net Cải tiến một chút về cấu hình vsftpd với virtual user /hvaonline/posts/list/2109.html của bác chairuou, ở bước thiết lập các virtual users:
Cài đặt virtual user: ----------------------- root@slackware10:/#useradd my_ftp -s /bin/false -d /var/ftp_pub root@slackware10:/#passwd my_ftp my_password  
vẫn phải tạo một user mới, chỉ có điều shell được cản với /bin/false. Có một cách theo tôi là hay hơn để tạo các ftp users theo đúng nghĩa là "virtual" thật sự. File cấu hình vsftpd.conf của tôi thế này:
local_enable=YES write_enable=YES local_umask=0022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=NO vsftpd_log_file=/var/log/vsftpd.log listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES user_sub_token=$USER local_root=/home/vsftp/$USER chroot_local_user=YES guest_enable=YES guest_username=vsftp virtual_use_local_privs=YES anon_umask=0022 anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO  
Ở đây, vsftp chỉ là một user "giả", được tạo ra với lệnh: Code:
# useradd -d /home/vsftp -s /bin/false vsftp
Mục đích của việc tạo user này là: + Tạo ra một thư mục /home/vsftp để chứa các FTP home directories + Owned các thư mục này Tiếp theo, bạn cũng tạo một file virtual_users.txt với nội dung:
user1 password1 user2 password2  
Để mỗi virtual user có một thư mục home riêng biệt, bạn có thể tạo các thư mục con trong /home/vsftp hoặc tạo symbolic links như sau: Code:
$ cd /home/vsftp
$ ln -s /mnt/data/Music user1
$ ln -s /mnt/data/Video user2
$ sudo chown -R vsftp /mnt/data/Music
$ sudo chown -R vsftp /mnt/data/Video
Cuối cùng là tạo file virtual_users.db từ virtual_users.txt bằng lệnh db4x_load. File này sẽ được dùng bởi thư viện pam_userdb.so: Code:
# db45_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
# chmod 600 /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
Mỗi khi muốn thêm một user, ngoài việc thêm username và password vào file virtual_users.txt, bạn cần xóa file virtual_users.db đi và chạy lại lệnh trên. Ở đây có vài điểm chú ý: 1. Trong file cấu hình vsftpd.conf, bạn cần có dòng này:
virtual_use_local_privs=YES 
Mục đích: Để map permission giữa user thật và user "ảo". Nếu không, virtual user sẽ không thể upload, và bạn sẽ gặp lỗi:
550 Permission denied 
2. Các FTP home directories cần được owned bởi vsftp: Code:
$ sudo chown -R vsftp /mnt/data/Music
$ sudo chown -R vsftp /mnt/data/Video
Nếu không, vsftpd sẽ "báo cáo" ngay khi upload:
553 Could not create file 
]]>
/hvaonline/posts/list/24059.html#145090 /hvaonline/posts/list/24059.html#145090 GMT