centos7搭建ftp服务器
应用场景 本地windows作为客户端,虚拟机CentOS7作为服务器端,搭建FTP服务器,本地访问虚拟机实现文件的上传下载。
1.安装vsftpd服务#
1、安装vsftpd: yum install vsftpd -y
2、启动vsftpd: systemctl start vsftpd
3、设置开机启动:systemctl enable vsftpd
2.关闭防火墙#
在虚拟机上使用没必要一个一个端口放行,直接关闭防火墙,一劳永逸
systemctl stop firewalld #停止防火墙运行
systemctl disable firewalld #禁止开机启动
3.添加访问用户#
创建的FTP目录如下:
mkdir -p /data/ftp
useradd -d /data/ftp -s /sbin/nologin ftpuser #/data/ftp为ftp文件目录 可自定义 ftpuser 为添加的用户名
echo "mima2020" | passwd ftpuser --stdin #设置用户密码,执行命令
设置主目录(更改登录时看到的目录,看个人需要更改,如果第4步已设置好,此步可忽略)
usermod -d /data/ftp ftpuser
FTP目录/data/ftp 并给他设置为所有者,并赋予755的权限
chown -R ftpuser /data/ftp
chmod 755 -R /data/ftp
4.配置ftp相关内容#
[root@localhost 20190425]# getsebool -a | grep ftp
ftp_home_dir --> on
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> on
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和sftpd_full_access状态,可通过一下命令执行
setsebool -P allow_ftpd_full_access on #允许ftp访问外网
setsebool -P ftp_home_dir on #允许ftp访问home
5.配置用户权限#
到这里已经可以使用访问FTP了,我们也可以自定义修改ftp相关配置
#执行vim /etc/vsftpd/vsftpd.conf 查看
anonymous_enable=YES #允匿名访问
local_enable=YES #允许本地用户访问
anon_root=/data/ftp #使用匿名登入时,所登入的目录
local_root=/data/ftp #设置本地用户的登录目录
write_enable=YES #允许本地用户写入
local_umask=022 #匿名用户的掩码
anon_upload_enable=YES #打开匿名用户的上传权限
anon_mkdir_write_enable=YES #允许匿名登入者有新增目录的权限只有在write_enable=YES时, 此项才有效.
dirmessage_enable=YES
xferlog_enable=YES #启用日志
connect_from_port_20=YES
chown_uploads=YES
chown_username=ftpuser
#xferlog_file=/var/log/xferlog
xferlog_std_format=YES
#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
#ftpd_banner=Welcome to blah FTP service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd/banned_emails
chroot_local_user=YES #允许本地账户登录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list #chroot_list 这个文件不存在,就要自己手动创建:/tmp/sms_file/*
allow_writeable_chroot=YES
#ls_recurse_enable=YES
listen=YES #开启IPV4监听
listen_ipv6=NO #关闭IPV6监听
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
我只对匿名访问,允许访问做了更改,anonymous_enable=NO、allow_writeable_chroot=YES
现在可以在在windows资源管理器或者浏览器,输入ftp://IP PORT 进行访问
也可以在命令行访问
登陆成功。
6.常用命令#
下载文件可以通过命令行执行
pwd #打印当前目录
ls #查看文件
lcd #设定本地下载目录
get filename #文件下载
mget * #文件批量下载
put filename #文件上传
mput * #批量上传
到此我们的ftp服务器搭建就结束了。
1.1 输入ftp://IP地址,可看到ftp下的目录(pub为系统预设的)
yum -y install ftp
2.2、使用anonymous登陆,无需密码
ftp 174.25.0.206
ftp://ftpuser:mima@111.230.247.206
================================================================================
Vsftpd权限等配置正确,报500,550解决方法
原创smahorse 发布于2013-01-07 18:01:16 阅读数 6059 收藏
展开
本人在配置完VSFTPD,使用的过程中遇到了500 cannot create file 的报错
查了很多解答,都说是权限的问题
我的FTP用户为 ftpuser
我为他建立了一个根目录 /home/ftp 并给他设置为所有者,并赋予755的权限
chown -R ftpuser /home/ftp
chmod 755 -R /home/ftp
所以我肯定不是权限的问题
后来我用ROOT用户登录FTP 又发现有550的报错,后来查550 发现可能是selinux启用的原因,关掉后就可以解决问题。具体如下:
vsftpd正常设置
但登陆后不能创建,也不能删除提示550错误
解决办法可以关掉selinux=disable
[root@host]# vi /etc/selinux/config
----------------------------------------------------------------------------------
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=disabled
#把这里改成disable
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
-------------------------------------------------------------------------------------
如果在想不重启系统的情况下关掉SELINUX,可以输入命令:
setenforce 0