1. 首先查看自己的虚拟机是否有ftp:
我的linux上默认是没有的。
2. 准备安装vsftpd
yum -y install vsftpd (这里的-y表示回答所有可能跳出的问题都为 yes)
注:报错Loaded plugins: product-id, refresh-packagekit, search-disabled-repos, security,
: subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Setting up Install Process
No package vsftpd available.
(redhat的yum源是需要注册付费的,需要删掉,重新创建一个新的免费的,参照附录1。另外,也没有vsftpd包)
问题解决:
①. 直接删除自带的yum包
rpm -qa| grep yum| xargs rpm -e --nodeps (解释:系统软件管理rpm, -q查询, -qa查询所有, 结果作为grep命令的输入参数,在此结果中查找关于yum的软件, xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数,详见:xargs命令,-e erase擦除,卸载;--nodeps 忽略依赖)
②. 查看是否存在yum:rpm -qa| grep yum
③. 建议新建一个目录:mkdir /working/ ,然后 cd /working/,下面一顿下载:
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.29-81.el6.centos.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-41.el6.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-urlgrabber-3.9.1-11.el6.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm
④. 安装包:
rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm
rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm
rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
下面两个一定要同时安装,不然会有依赖冲突!
rpm -ivh yum-3.2.29-81.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-41.el6.noarch.rpm
⑤. 备份redhat自带的repo文件,并下载替代文件
mv rhel-source.repo rhel-source.repobak
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
⑥. 替换文件中的$releasever为版本号6,执行全文替换命令(参考附录2):
在vi的命令模式下::1, $s/$releasever/6
⑦. 运行以下命令生成缓存
yum clean all
yum makecache
好了,以上完成了yum的替换。执行yum -y install vsftpd完成vsftpd服务的安装
3. 配置ftp服务器(主要的对照一下,其他先不管了,详情参照附录4)
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
ascii_upload_enable=NO(防止以后项目通过ASCII码格式传上来不能启动)
ascii_download_enable=NO(上传下载都禁了ASCII码传输数据)
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list(没有的话,自己建一个chroot_list文件)
在 /etc/vsftpd/ftpusers /etc/vsftpduser_list用#号,注释掉root
4. 开启vsftpd服务
service vsftpd start
ftp localhost,退出用bye
5. 添加ftp用户(参考附录3)
useradd -d / ceshi 给测试账号添加跟目录访问路径
passwd ceshi 账号设置密码(输入2次)
usermod -s /sbin/nologin ceshi(给测试账号设置不能登录系统的权限)
service vsftpd restart
6. 下载LeapFTP工具:LeapFTP V3.0.1汉化版
连接一下刚才间的ftp服务器,可以上传可下载文件了。
参考目录:
1. yum的卸载与重新安装:https://blog.csdn.net/indexman/article/details/79570577
2. vi全局替换方法:http://blog.sina.com.cn/s/blog_736f1c59010136ry.html
3. vsftp添加用户并设置相应的权限:https://jingyan.baidu.com/album/ceb9fb10a43b8b8cac2ba05a.html?picindex=2
vim使用:全局搜索并跳转:https://blog.csdn.net/yaozhenguo2006/article/details/72861676
4. Linux中vsftpd配置文件详解:https://www.linuxidc.com/Linux/2017-07/145346.htm
其他问题参考:
CentOS的yum命令无法执行、运行错误:http://free.yes81.net/yes81/view-11292.html
centos 6软件包库:http://mirrors.163.com/centos/6/os/x86_64/Packages/
Linux不能使用FTP命令 -bash: ftp: command not found:https://blog.csdn.net/shachejiayou/article/details/47805463
500 OOPS: cannot change directory:/root:https://blog.csdn.net/gnail_oug/article/details/46953917
对chroot_list_file=/etc/vsftpd.chroot_list的一点说明:https://www.linuxidc.com/Linux/2013-09/90560.htm