linux ftp服务器部署
1.sudo apt-get install vsftpd ##下载vsftpd
2.sudo vim /etc/vsftpd.conf ##vsftpd配置文件
添加
#禁止匿名访问
anonymous_enable=NO
#接受本地用户
local_enable=YES
#允许上传
write_enable=YES
#用户只能访问限制的目录
chroot_local_user=YES
#设置固定目录,在结尾添加。如果不添加这一行,各用户对应自己的目录,当然这个文件夹自己建
local_root=/home/ftp/data
3. 添加相应的目录
sudo mkdir /home/ftp
sudo chmod a-w /home/ftp
sudo mkdir /home/ftp/data
sudo mkdir /home/ftp/data/upload
sudo mkdir /home/ftp/data/download
sudo chmod 777 /home/ftp/data/upload
sudo chmod 755 /home/ftp/data/download
4.添加用户
sudo useradd -d /home/ftp -M ftpuser
sudo passwd ftpuser ##设置密码
5. 这时候直接用useradd的帐号登录ftp会530 login incorrect
sudo vim /etc/pam.d/vsftpd
注释掉
#auth required pam_shells.so
6.重启vsftpd
sudo service vsftpd restart
关于用户访问文件夹限制
由chroot_local_user、chroot_list_enable、chroot_list_file这三个文件控制,转别人的一段话:
首先,chroot_list_enable好理解,就是:是否启用chroot_list_file配置的文件,如果为YES表示chroot_list_file配置的文件生效,否则不生效;
第二,chroot_list_file也简单,配置了一个文件路径,默认是/etc/vsftpd.chroot_list,该文件中会填入一些账户名称。但是这些账户的意义不是固定的,是跟配置项chroot_local_user有关的。后一条中说明;
第三,chroot_local_user为YES表示所有用户都*不能*切换到主目录之外其他目录,但是!除了chroot_list_file配置的文件列出的用户。chroot_local_user为NO表示所有用户都*能*切换到主目录之外其他目录,但是!除了chroot_list_file配置的文件列出的用户。也可以理解为,chroot_list_file列出的“例外情况”的用户。
如果客户端登录时候提示“以pasv模式连接失败”
编辑/etc/vsftpd.conf
最后添加
pasv_promiscuous=YES
然后再重启vsftpd服务。