参考http://blog.csdn.net/liangxanhai/article/details/8157922
1、安装vsftpd
apt-get install vsftpd
2、添加用户
useradd vsftpd -d /home/xf_ftp -s /bin/false
3、修改/etc/vsftpd.conf(复制可用),这里要注意:配置文件每一行后面与前面不要有多余的空格,不然vsftpd启动不了,其他文件也按这种方式最好。
点击(此处)折叠或打开
- listen=YES
- anonymous_enable=NO
- dirmessage_enable=YES
- xferlog_enable=YES
- xferlog_file=/var/log/vsftpd.log
- xferlog_std_format=YES
- chroot_local_user=YES
- guest_enable=YES
- guest_username=xf_ftp
- user_config_dir=/etc/vsftpd/vsftpd_user_conf
- pam_service_name=vsftpd.u
- local_enable=YES
- secure_chroot_dir=/var/run/vsftpd
4、创建虚拟用户
创建文件/etc/vsftpd/login.txt ,内容如下:
user1
1234567
user2
1234567
生成数据库文件,db5.1_load根据自己电脑上的版本来吧,改一下就可以了。
db5.1_load -T -t hash -f login.txt /etc/vsftpd/vsftpd_login.db
5、添加/etc/pam.d/vsftpd.u(虚拟用户认证文件)
这个文件夹下本来有vsftpd文件,这里根据上面的配置重新创建了一个而已(pam_service_name=vsftpd.u),认证虚拟用户用的。
这里要特别注意:pam_userdb.so文件不同电脑版本位置可能不一样,可以通过find -name "pam_userdb.so" 查找,/etc/vsftpd/vsftpd_login不要加后缀.db,不然认证会找不到文件。
点击(此处)折叠或打开
- auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
- account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
vsftpd: refusing to run with writable root inside chroot
原因是 /home/xf_ftp不能有写权限,去除即可。6、添加虚拟目录
根据vsftpd.conf文件中的user_config_dir=/etc/vsftpd/vsftpd_user_conf,
创建文件夹/etc/vsftpd/vsftpd_user_conf,在文件夹下创建用户配置文件user1与user2,内容如下
user1:
点击(此处)折叠或打开
- local_root=/mnt/data1/xufu_ftp/user1
- write_enable=YES
- anon_world_readable_only=NO
- anon_upload_enable=YES
- anon_mkdir_write_enable=YES
- anon_other_write_enable=YES
点击(此处)折叠或打开
- local_root=/mnt/data1/xufu_ftp/user2
- write_enable=YES
- anon_world_readable_only=NO
- anon_upload_enable=YES
- anon_mkdir_write_enable=YES
- anon_other_write_enable=YES
创建目录/home/xf_ftp/user1与/home/xf_ftp/user2,同样去掉写权限,如果要写权限的文件加,创建/home/xf_ftp/user1/folder,chmod 777 folder,这样folder下就可以读写了。