Linux下FTP的基本配置
2014-11-05傅令杰
傅令杰
摘 要
计算机之间需要上传和下载文件,FTP则是其中非常优秀的一个协议。刚刚过了RedHat的RHCE,本着趁热打铁的精神,写下一篇关于如何简单配置FTP的文章。这篇文章面对非专业的Linux使用者,从零开始帮助大家一点一点配置好FTP的基本功能,能够让别的机器访问自己,并上传下载文件。
【关键词】Linux RedHat vsftpd selinux
1 安装配置Linux环境
在正式开始交大家如何安装和配置FTP之前,先帮助大家搭建好自己的运行环境。因为是开源的操作系统,现在市面上流行的Linux发行版非常之多,像大家熟悉的Ubuntu,debian,fedora,Centos,rhel都是非常优秀的发行版。对于面向server而言,个人比较推荐大家选择rhel或者centos,后者是rhel的社区再编译版,可谓同宗同源。这里笔者选择rhel6.5作为这篇文章的默认运行环境了。首先大家从网上下载下来镜像,一般是***.Iso。可以选择在Windows下的虚拟机VMware workstation进行安装,当然,如果是有系统洁癖的朋友,完全可以用poweriso配合U盘制作自己的双系统。Linux里的grub会自行接管开机的引导,读者可以在开机时自由的选择想要使用的操作系统。
现在假定已经顺利的进入了自己安装好的rhel6.5了。由于红帽公司的官方源是需要购买的,为了能够安装我们的vsftp,我们需要自己配置本地yum源。Linux下有一句非常著名的话,叫做“一切皆文件”,在Linux下,无论是设备也好,服务也好,都可以抽象成文件来进行配置。配置yum源和FTP其实也是对文件的改动。
首先大家以root身份登录系统,打开终端,用cd命令进入/etc/yum.repo.d/目录,使用rm–fr*删除掉里面原先的源。vim yum.repo创建新的文件。注意这里的.repo必须要有,这是系统寻找yum源文件所必须的后缀,至于点前面的名字,可以任意取名。进入文件后可以这样写(笔者的每一个空格代表空一行):[Server] name=localserverbaseurl=file:///yum gpgcheck=0然后wq退出保存。回到/目录,用mkdir创建目录yum。这是请特别注意,如果是虚拟机的话,直接使用命令mount /dev/sr0 /yum挂载ISO虚拟设备到/yum目录就行,然后在/etc/fstab/下写入/etc/sr0 /yum iso9660 defaults 0 0 这样一来就能永久的挂载了。如果是装双系统的朋友,需要这样写mount –o loop [你的iso文件] /yum 然后在/etc/fstab里写入/etc/sr0 /yum iso9660 loop 0 0。现在一切准备妥当,键入yum clean all 再yum list 看到一大堆的软件,那么就说明你的本地yum源配置好了。准备工作现在已经告一段落了。
2 安装FTP以及配置文件内容
以root身份打开终端,输入yum install vsftpd –y,这个时候系统会自行从刚刚配置好的yum源里找到FTP的安装包及相关的依赖关系。等安装好后,我们需要开机启动vsftpd。使用chkconfigvsftpd on,再使用chkconfigvsftpd–list,如果看到2345是on,则说明机器开机就自动启动FTP服务了。进入/etc/vsftpd/vsftpd.conf,这是FTP的主配置文件。值得一提的是,Linux的配置文件中,开头带有#的,指的是注释内容,意思是并不生效的意思。将文件中第27行的#去掉,并在第28行加入anon_write_readable_only=NO。这样就可以允许上传和下载文件了。如果实在记不住这个麻烦的命令,完全可以另开一个终端,利用帮助文档man 5 vsftpd来找到相应的命令。事实上Linux下,很多文件的配置信息都是在其强大的帮助文档里详细记载的。
3 更改目录权限
这个时候读者/etc/init.d/vsftpd restart,并且安装了lftp工具后,会发现没有办法看到自己FTP默认发布目录,也就是/var/ftp/pub/里的内容,也没有办法上传和下载文件。这个时候就需要对权限进行调整了。进入到/var/ftp/,使用命令chmod775 pub 来使ftp组的用户具有写的权限,同时使用chcon ftp pub 来改变pub的所属组。关于Linux中权限的有关知识,一篇文章恐怕很难给读者说清楚,希望读者成功配置完ftp后,自行学习,不但要知其然还要知其所以然。
4 更改相应的SELinux
这个时候还需要最后一步,就是对SELinux的更改。用ls –Z命令可以查看SELinux的属性,可以看到,pub目录的安全上下文是public_content_t这显然是不行的,需要使用命令chcon–t public_content_rw_t更改安全上下文。同时使用getsebool–a | grep ftp看FTP的sebool值,使用setsebool–P allow_ftpd_anon_write更改。此时/etc/init.d/vsftpd restart来重新启动FTP,使用别的机器lftp[主机ip],就可以访问你的默认发布目录了,即就是/var/ftp/pub/内的所有文件,同时也可以自由的在默认发布目录里对文件进行读和写的操作。这就是FTP实现外部访问和读写的简单配置。
参考文献
[1]鸟哥.鸟哥的Linux私房菜服务器架设篇[M].北京:人民邮电出版社,2012(06).
指导老师
韩立凯教授、王光教授。
作者单位
西安文理学院 陕西省西安市 710000endprint