首先啊,更新系统了没?,更新了再开始安装ftp!
sudo apt-get update
好了,开始安装ftp吧:
sudo apt-get install vsftpd
ubuntu安装完了就自动启动并且自动开机启动了,centos还要设置开机启动然后再手动启动服务。
装好了,开始配置:
vim /etc/vsftpd.conf
#是否允许匿名访问,NO为不允许
anonymous_enable=NO
#是否允许本地用户访问,就是linux本机中存在的用户,YES允许
local_enable=YES
#去掉下边这句的注释"#"。是否开启写模式,YES为开启
write_enable=YES
#是否启动userlist为通过模式,YES的话只有存在于userlist文件中的用户才能登录ftp,NO的话,白名单失效,和下面一个参数配合使用
userlist_enable=YES
#是否启动userlist为禁止模式,YES表示在userlist中的用户禁止登录ftp(黑名单),NO表示黑名单失效,我们已经让userlist作为一个白名单,所以无需使用黑名单功能
userlist_deny=NO
#指定哪个文件作为userlist文件,我们稍后编辑这个文件
userlist_file=/etc/vsftpd.user_list
#是否限制本地所有用户切换根目录的权限,YES为开启限制,即登录后的用户不能访问ftp根目录以外的目录,这个如果是自己用就直接注释掉chroot"开头的下边这三句吧(为了自己方便),有其他用户的话就打开。
chroot_local_user=YES
#是否启动限制用户的名单list为允许模式,上面的YES限制了所有用户,可以用这个名单作为白名单,作为例外允许访问ftp根目录以外
chroot_list_enable=YES
#设置哪个文件是list文件,里面的用户将不受限制的去访问ftp根目录以外的目录
chroot_list_file=/etc/vsftpd.chroot_list
#设置ftp根目录的位置,这个文件我们稍后自己创建(注意:这个根目录这句话必须写!)
local_root=/home/myftp
然后重启vsftpd让更改生效
sudo /etc/init.d/vsftpd restart
创建你的ftp根目录(配置文件里写的路径):
mkdir /home/myftp
下边我们将为ftp添加虚拟用户,就是你用来访问的用户名和密码
#下边的yourftpname就是你自己用来登录ftp的用户名,自己取一个吧
sudo useradd -d /home/myftp yourftpname
sudo passwd yourftpname
#然后会提示输入密码,重新输入密码。然后就是提示successful之类的了。
下边我们来创建在配置文件里说到的”白名单“,在里边写上你的用户名就可以了
#下边两个文件中的用户名如果有多个就每一行写一个
vim /etc/vsftpd.user_list
#如果在配置文件里没有注释掉”chroot“开头的三句话,这里你就要在下边的文件里写上你的用户名,如果注释掉了,就不用创建和编辑这个文件了。
vim /etc/vsftpd.chroot_list
好了,到这里就结束了!
下边说遇到的问题
1,530 Permission denied 问题的解决:
这貌似是ftp被动模式的问题,把你的”主机名“写成ip就好了,不要写成域名。如下:
如果是用的File Zilla这个软件,就在 编辑->设置->连接->FTP->被动模式 里边改成”退回到主动模式“即可。如下图:
2,530 Login incorrect 的解决办法
这个问题我自己没遇到过,可是我为了区分上边的”530 Permission denied“,我才找了找网上的前辈经验:
在网上看到这问题原因主要是说服务器系统是64位的。
这种情况只需要把 /etc/pam.d/下面的vsftpd里面的/lib 修改为/lib64
cd /etc/pam.d
vi vsftpd
然后保存退出
service vsftpd restart就ok
不过我的系统是32位。
再网上再找过一些资料后
发现
只需要把/etc/pam.d/vsftpd文件中的
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
这一句注释掉就OK了。前面加一个#好
重启vsftpd服务。问题解决。
或者
将
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/ftpusr
account required /lib/security/pam_userdb.so db=/etc/vsftpd/ftpusr
改为:
auth required pam_userdb.so db=/etc/vsftpd/ftpus
account required pam_userdb.so db=/etc/vsftpd/ftpusr
好了,到此为止都弄完了。还有问题的欢迎留言提问!