linux安装FTP
查看是否已经安装FTP
rpm -qa|grep vsftpd
出现如上图表示已经安装。
出现 程序“rpm”尚未安装。 您可以使用以下命令安装rpm:
apt install rpm
如果vsftpd没有信息,则表示没有安装。
安装FTP
yum install -y vsftpd
备份并修改配置文件
cd /etc/vsftpd/ cp vsftpd.conf vsftpd.conf.bak //备份 vim vsftpd.conf //修改配置文件
修改内容
此时用usertest登陆系统ftp,是否可以访问?如果无法访问,说明我们的ftp做了限制。打开/etc/vsftpd/vsftpd.conf,查找userlist_enable、userlist_deny、userlist_file。如果 userlist_deny=NO:只允许userlist_file文件中的用户可访问ftp;如果 userlist_deny=YES:userlist_file文件中列举的用户不能通过ftp访问系统。userlist_enable是该功能的开 关。我们的系统配置如下:
userlist_enable=YES userlist_deny=NO userlist_file=/etc/vsftpd/user_list 所以需要把用户加入到/etc/vsftpd/user_list文件中,每个用户一行。
配置文件说明
anonymous_enable=NO #不允许匿名用户登陆 local_enable=YES #vsftpd所在系统的用户可以登录vsftpd write_enable=YES #允许使用任何可以修改文件系统的FTP的指令 local_umask=002 #匿名用户新增文件的umask数值 anon_upload_enable=NO #匿名用户不可以上传文件 anon_mkdir_write_enable=NO #匿名用户不可以修改文件 xferlog_enable=YES #启用一个日志文件,用于详细记录上传和下载。 use_localtime=YES #使用本地时间而不是GMT vsftpd_log_file=/var/log/vsftpd.log #vsftpd日志存放位置 dual_log_enable=YES #用户登陆日志 connect_from_port_20=YES #开启20端口 xferlog_file=/var/log/xferlog #记录上传下载文件的日志 xferlog_std_format=YES #记录日志使用标准格式 idle_session_timeout=600 #登陆之后超时时间60秒,登陆之后,一分钟不操作,就会断开连接。 chroot_local_user=YES #用于指定用户列表文件中的用户,是否允许切换到上级目录 listen=YES #开启监听 pam_service_name=vsftpd.vu #验证文件的名字 userlist_enable=YES #允许由userlist_file指定文件中的用户登录FTP服务器 tcp_wrappers=YES #支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny) guest_enable=YES #起用虚拟用户 guest_username=taokey #虚拟用户名 #user_config_dir=/etc/vsftpd/vsftpuser #虚拟用户配置文件路径 local_root=/usr/local/ftpFiles #自定义ftp上传路径(注意文件夹权限) pasv_min_port=35000 pasv_max_port=45000 pasv_enable=YES pasv_promiscuous=YES anon_other_write_enable=YES userlist_deny=NO #只允许userlist_file文件中的用户可访问ftp,为YES是表示名单内不允许访问 userlist_file=/etc/vsftpd/user_list #指定名单位置
关闭并保存配置文件,重启vsftpd
service vsftpd restart 重启 service vsftpd start 启动
注意
如果指定home 用户目录下作为文件上传路径则需要
1. 查看SELinux设置 # getsebool -a | grep ftp 发现 ftpd_disable_trans –> off 或者 ftp_home_dir–>off 2. 使用setsebool命令开启 # setsebool ftpd_disable_trans 1 或者 # setsebool ftp_home_dir 1 3. 查看当前状态是否是on的状态 # getsebool -a|grep ftp 此时 ftpd_disable_trans –> on 或者 ftp_home_dir–>on 4. 最后重启 # service vsftpd restart OK,问题解决了。 另外 setsebool 使用-P参数,无需每次开机都输入这个命令 # setsebool -P ftpd_disable_trans 1 或者 # setsebool -P ftp_home_dir 1
文档信息
- 本文作者:chayedankase
- 本文链接:https://chayedankase.github.io/2019/12/04/linux%E5%AE%89%E8%A3%85FTP/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)