搭建ftp服务器
1.安装vsftpd:
#apt-get install vsftpd
2.查看是否安装成功,若成功有版本号:
#vsftpd -v
3.查看安装路径:
#whereis vsftpd
4.选择在用户目录下创建ftp文件目录:
#cd /
#mkdir ftpfile
5.添加用户:
#useradd ftpuser -d /ftpfile/
6.修改ftpfile权限:
#chown -R ftpuser.ftpuser /ftpfile/
7.重置用户密码:
#passwd ftpuser
8.本地用户登录配置:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
local_root=/ftpfile
use_localtime=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
allow_writeable_chroot=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
userlist_file=etc/vsftpd.user_list
pasv_min_port=61001
pasv_max_port=62000
9.配置chroot_list文件
该文件目录的节点在上一步配置vsftpd.conf文件中已解除注释。进入到/etc/目录下创建文件chroot_list,用编辑器打开文件时,如果没有这个文件,会默认自动创建一个该文件。
将用户添加进入该文件中
#cd /etc/
# vi chroot_list
10.重启vsftdp
# sudo service vsftpd restart
11.匿名用户登录,上传下载文件更改目录配置文件:
listen=YES
anonymous_enable=YES
local_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
ftpd_banner=Welcome to FTP service.
allow_writeable_chroot=YES
secure_chroot_dir=/var/run/vsftpd/empty
userlist_file=etc/vsftpd.user_list
主要问题:
1、本地创建用户登录显示:500 OOPS: cannot read user list file:/ftpfile/ -s/sbin/nologin
原因:创建用户命令不正确,直接在ftpfile下创建,不用禁用原路径。
2、匿名用户登录显示:500 OOPS: vsftpd:refusing to run with writable root inside chroot()
原因:从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了。如果检查发现还有写权限,就会报该错误。去掉/etc/vsftpd.conf配置文件中的限定目录,如下注释掉匿名用户的限定目录,则匿名用户登录后会在/srv/ftp/目录下。
3、匿名用户不能查看文件:226 Transfer done (but failed to open directory)
原因:首先考虑防火墙问题,关闭防火墙,在/etc/sulinux/config中设置SELINUX=disable,
若防火墙关闭还是显示此错误,考虑ftp根目录权限,将其权限更改为755,重启,此时显示226 Directory send OK.
4、无法建立文件夹:550 Create directory operation failed.
原因:ftp没有权限,在ftp下新建一个文件夹file,把ftp赋予到/file这个文件夹的权限上,在file下新建目录,上传下载文件。
主目录权限为775,子目录所有权限为777