1.搭建前的一些准备工作
- 需要手动创建一个目录-ftp的根目录,用户可以访问该目录下的资源,
mkdir /home/uftp
接着创建一个子目录,
mkdir /home/uftp/data
修改ftp这个目录的权限,
chmod -R 777 /home/uftp
匿名用户登录
1apt-get install vsftpd
安装ftp服务器
2 配置vsftpd.conf文件,要有root权限:
sudo gedit /etc/vsftpd.conf
配置文件以匿名登录
在后面加上
anonymous_enable=YES
anon_root=/home/……/ftp
no_anon_password=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
3 重启sudo /etc/init.d/vsftpd restart
最后就可以实现匿名登录
.
本地用户登录
添加用户
useradd -d /home/ftp/data -s /sbin/nologin uftp
设置密码
passwd zhangxw
然后修改配置文件
sudo gedit /etc/vsftpd.conf
直接在后面加
限制用户对主目录以外目录访问
chroot_local_user=YES
#指定一个 userlist 存放允许访问 ftp 的用户列表
userlist_deny=NO
userlist_enable=YES
#记录允许访问 ftp 用户列表
userlist_file=/etc/vsftpd.user_list
#不配置可能导致莫名的530问题
seccomp_sandbox=NO
#允许文件上传
write_enable=YES#使用utf8编码
utf8_filesystem=YES
建立相应的本地用户登录文件夹位于 /etc下先建立vsftpd文件夹
sudo mkdir /etc/vsftpd
sudo cd /etc/vsftpd
touch vsftpd.user_list
创建文件成功后,我们就可以添加访问用户了,添加用户的命令是
useradd -d /home/uftp/data -s /sbin/nologin uftp
将上面添加的用户,手动写入到
gedit /etc/vsftpd/ vsftpd.user_list
只需要添加第一行第一个名字即可
. 最后进行本地登录
虚拟用户登录
最难搞的来了 本人搞了一下午加1天勉强搞完
1.在上述基础上加入虚拟用户时候新建虚拟用户的配置文件:
sudo touch /etc/vsftpd/stu
2.专门建立一个存放这些虚拟用户及它们密码的数据库并赋予权限
$touch loguser.txt
$vim loguser.txt
*/将用户名、密码一行一行地填写,比如用户名为usera,密码为123456,那么,loguser.txt的内容是:
usera
123456
*/
将txt文件改成数据库文件
db4.8_load -T -t hash -f vsftpd_login.txt /etc/vsftpd_login.db
赋予权限
$chmod 600 /etc/vsftpd_login.db
文件/etc/pam.d/vsftpd.vu的内容是
auth sufficient pam_userdb.so db=/etc/vsftpd_login account sufficient
pam_userdb.so db=/etc/vsftpd_login
注意一定要顶行写
3.创建用户vsftpd
useradd vsftpd -d /home/vsftpd -s /bin/false
chown vsftpd:vsftpd /home/vsftpd
配置完成后先修改vsftpd.conf文件配置
sudo gedit /etc/vsftpd.conf
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=vsftpd
user_config_dir=/etc/vsftpd_user_conf
pam_service_name=vsftpd.vu
local_enable=YES
secure_chroot_dir=/var/run/vsftpd
local_max_rate=204800
修改parm目录
touch /etc/pam.d/vsftpd.vu
文件/etc/pam.d/vsftpd.vu的内容是
注意一定要顶行写
auth sufficient pam_userdb.so
db=/etc/vsftpd_login
account sufficient pam_userdb.so
db=/etc/vsftpd_login
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=vsftpd
user_config_dir=/etc/vsftpd_user_conf
pam_service_name=vsftpd.vu
local_enable=YES
secure_chroot_dir=/var/run/vsftpd
local_max_rate=204800
5.配置usera(用户)文件
$mkdir /etc/vsftpd_user_conf
$cd /etc/vsftpd_user_conf
$touch usera
文件/etc/vsftpd_user_conf/usera的内容是
local_root=/home/vsftpd/usera
创建usera的工作目录
cd /home/vsftpd/
mkdir usera
touch test.txt
注意别加
seccomp_sandbox=NO
write_enable=YES
utf8_filesystem=YES
allow_writeable_chroot=YES
加上可能导致莫名的530问题
6.重启ftp
/etc/init.d/vsftpd restart