centos7上搭建FTP(简单版)教程
CentOS7 FTP安装与配置
1、FTP的安装
#安装
yum install -y vsftpd
#设置开机启动
systemctl enable vsftpd.service
#启动
systemctl start vsftpd.service
#停止
systemctl stop vsftpd.service
#查看状态
systemctl status vsftpd.service
2、配置FTP
#打开配置文件 vim /etc/vsftpd/vsftpd.conf #显示行号 :set number
#备份当前的vsftp.conf文件为vsftp.conf.bak,新建一个vsftp.conf文件添加下列内容到vsftpd.conf末尾
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
write_enable=YES
local_root=/home/$USER
allow_writeable_chroot=YES
anonymous_enable=NO
local_enable=YES
pam_service_name=vsftpd
3、修改 /etc/pam.d/vsftpd 文件
# 修改前先备份 cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak vi /etc/pam.d/vsftpd
#先将配置文件中原有的 auth 及 account 的所有配置行均注释掉
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
#修改auth required pam_shells.so为以下配置
auth required pam_nologin.so
# 如果系统为32位,上面改为lib
4、新建系统用户ftptest,用户目录为/home/ftptest
#用户登录终端设为/sbin/nologin(即:使之不能登录系统) useradd ftp -d /home/ftptest -s /sbin/nologin ftptest chown -R ftp:ftptest /home/ftptest
passwd ftptest
5、重启vsftpd服务器
systemctl restart vsftpd.service
6、使用ftp工具连接测试
这个时候,使用ftp的工具连接时,我们发现是可以连接的。传输文件的时候,会发现文件上传和下载都会出现
500、503 、200等问题。这个时候,可以进行以下操作:
方式一、关闭SELINUX
#打开SELINUX配置文件 vim /etc/selinux/config #修改配置参数 #注释 SELINUX=enforcing #增加 SELINUX=disabled #修改完成后,需要重启!
方式二、修改SELINUX
setenforce 0 #暂时让SELinux进入Permissive模式 #列出与ftp相关的设置 getsebool -a|grep ftp #以下是显示出来的权限,off是关闭权限,on是打开权限。不同的机器显示的可能不一样。我看了我的显示的,和网上其他教程就不太一样 ftp_home_dir --> off ftpd_anon_write --> off ftpd_connect_all_unreserved --> off ftpd_connect_db --> off ftpd_full_access --> off ftpd_use_cifs --> off ftpd_use_fusefs --> off ftpd_use_nfs --> off ftpd_use_passive_mode --> off httpd_can_connect_ftp --> off httpd_enable_ftp_server --> off sftpd_anon_write --> off sftpd_enable_homedirs --> off sftpd_full_access --> off sftpd_write_ssh_home --> off tftp_anon_write --> off tftp_home_dir --> off #将包含有 ftp_home_dir 和 ftpd_full_access 相关的都设置为 1 setsebool -P ftp_home_dir 1
setsebool -P allow_ftpd_anon_write 1 setsebool -P ftp_home_dir 1 setenforce 1 #进入Enforcing模式
方式三、 SELINUX不对vsftp不做任何限制
setsebool -P ftpd_connect_all_unreserved 1
这个时候再使用工具连接,你发现,就可以正常的上传和下载文件了。
如果还是有问题尝试给我们用户的ftp目录,设置一下操作权限
chmod -R 775 /home/vsftpd/leo
The Internet is big, really big, like bigger than you thought big.