Centos7下安装和配置ftp服务器

第一步,安装vsftpd这款ftp服务器软件,

yum install -y vsftpd

第二步,设置vsftpd服务开机自启动,然后重启服务,查看ftp服务端口

chkconfig vsftpd on
systemctl enable vsftpd
systemctl restart vsfpd

第三步:进入vsftpd主配置文件 vi /etc/vsftpd/vsftpd.conf,修改anonymous_enable = NO,这样可以禁止匿名登陆用户登录。
同时,去掉chroot_local_user = yes前的注释,限制用户访问家目录之外的地方

anonymous_enable = NO
chroot_local_user =YES

第四步,创建ftp用户,设置用户无法登陆服务器系统并且家目录在/var/www/html(默认)下:

useradd -s /sbin/nologin -d /var/www/html test

回车设置test用户密码
给其他人修改文件夹的权限:

chmod o+w /var/www/html/

如果是默认安装vsftpd的话,以下是一些文件的位置约定:

/usr/sbin/vsftpd ---- VSFTPD的主程序
/etc/rc.d/init.d/vsftpd ---- 启动脚本
/etc/vsftpd/vsftpd.conf ---- 主配置文件
/etc/pam.d/vsftpd ---- PAM认证文件
/etc/vsftpd.ftpusers ---- 禁止使用VSFTPD的用户列表文件
/etc/vsftpd.user_list ---- 禁止或允许使用VSFTPD的用户列表文件
/var/ftp ---- 匿名用户主目录
/var/ftp/pub ---- 匿名用户的下载目录

安装完成,后面就是使用的相关问题了。
问题一:
windows资源管理器通过ftp://xxx.xxx.xxx.xx访问报错:

Centos7下安装和配置ftp服务器_第1张图片
image.png

关闭被动FTP即可:
Centos7下安装和配置ftp服务器_第2张图片
image.png

修改完以后同样使用chmod给目录分配权限

问题二:
如果要更改默认下载目录,修改/etc/vsftpd/vsftpd.conf,加入如下三行:

local_root=/data/ftp/
chroot_local_user=YES
anon_root=/data/ftp/

或者采用mount挂载的方式也可以

local_root表示使用本地用户登录到ftp时的默认目录
anon_root表示匿名用户登录到ftp时的默认目录

你上面的chroot_list_file是设定锁定登陆用户在其home目录的列表,要在chroot_list_enable=YES情况下才生效。

问题三:centos7 ftp报错 530 Login incorrect
tail -f /var/log/secure查看错误信息,根据相应信息修改
如果没有信息,则修改/etc/pam.d/vsftpd文件,注释掉auth required pam_shells.so,重启即可。如图:

vim /etc/pam.d/vsftpd

#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required    pam_shells.so
auth       include      password-auth
account    include      password-auth
session    required     pam_loginuid.so
session    include      password-auth

问题四:
500OOPS:can not change directory的解决办法

方法一:
vi /etc/sysconfig/selinux
将 SELINUX=enforcing 修改为SELINUX=disabled,
关闭SELINUX后, 重新启动机器,问题解决
方法二:
可能没有创建这个目录
创建目录即可

问题五:
vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法

在/etc/vsftp/vsftp.conf文件中增加
allow_writeable_chroot=YES

你可能感兴趣的:(Centos7下安装和配置ftp服务器)