学习需要且囊中羞涩,于是在虚拟机下安装了CentOS7,考虑方便传输文件于是先架设一个vsftpd,命运多舛啊!
rpm -qa | grep vsftpd,发现木有安装,于是 yum install vsftpd 安装,很快完成。
vi /etc/vsftpd/vsftpd.conf 打开配置文件,参考别人的说明设置参数,保存。
service start vsftpd——这命令显然在CentOS7下面是不好使的,改用systemctl start vsftpd,duang!!!——报错了!
百度——各种尝试失败,删除rpm -e vsftpd.******.x86_64 ,重新安装后,谨慎的设置了下conf文件 ——增加listen_port=2121其他不变。
添加端口 iptables -A INPUT -p tcp --dport 2121 -j ACCEPT (或者firewall-cmd --add-port=2121/tcp)。
再次使用systemctl start vsftpd ,成功!
创建ftp目录 mkdir /home/ftp ;
修改权限 chmod -R 777 /home/ftp;
修改用户组(group为ftp) chgrp -R ftp /home/ftp;
创建用户 adduser -d /home/ftp -g ftp -s /sbin/nologin zhangsan;
创建zhangsan用户的密码 passwd ;
为了保险起见 重启iptables 重启vsftpd ,以前成功后 怀着激动地心情使用FTP客户端连接,duang!!!——“读取目录列表失败”。
已经快一天了,快疯了,好吧继续和度娘缠绵!
多次尝试后确定采用被动模式:vi /etc/vsftpd/vsftpd.conf 最下面增加以下内容:
pasv_enable=yes # 是否开户被动模式
pasv_min_port=5000 # 被动模式最小端口
pasv_max_port=5999 # 被动模式最大端口
保存退出,添加端口映射 iptables -A INPUT -p tcp --dport 5000:5999 -j ACCEPT,重启iptables,重启vsftpd。
怀着务必复杂的心情使用ftp客户端连接,成功!
当我激动的想在/home/ftp下面建个文件夹的时候,没错 duang!!!——“550 Create directory operation failed”
此时日已西斜,余晖洒在我已经扭曲的脸上...
网上说这是"SELinux"作祟,使用vi /etc/selinux/config打开,修改为:SELINUX=disabled,
对于一个Linux菜鸟——我,这东西名字里带着"linux"好像很牛掰的样子,度娘说SELinux是......
本着能使用就不删除的原则继续查,使用命令 setsebool -P ftp_home_dir 1 (SELinux不允许vsftpd线程访问用户主目录,那就让它放手...)。
至此终于可以创建文件夹、上传小文件了!
路漫漫,其修远。
ps:第二天重启虚拟机的LINUX发现ftp获取文件目录失败,原因是昨天设定的被动模式端口 采用的命令仅对本次启动有效,公司网络组同事说如果想永久要修改iptables,vim /etc/sysconfig/iptables 增加如下命令 -A INPUT -p tcp --dport 5000:5999 -j ACCEPT 保存退出,重启iptables即可。