今天下午不忙,没什么事,看到我大红盟linux版块如此冷清,心不能忍,做了个FTP服务器的搭建教程,大家可以看看,
不会做视频,就图文交叉了,写得不好,望谅解。以后有时间再出一个LNMP的教程。
不磨叽,开始。

系统:CENTOS 6.3  
平台:vsftpd

准备:
关闭linux防火墙, (不想关的可以把ftp的21端口加到防火墙规则即可,我为了省事)
#chkconfig --level 35 iptables off

关闭selinux:编辑配置文件/etc/selinux/config,改为SELINUX=disabled

如图:


centos7查看ftp端口 centos查看ftp服务_centos7查看ftp端口


重启电脑!



开始


1.先查看系统是否安装了vsftpd和ftp,


centos7查看ftp端口 centos查看ftp服务_主目录_02


#rpm -q vsftpd       和#rpm -q ftp


出现上图所示内容XXXX is not installed 则说明没有安装,那我们通过yum安装上,


#yum install vsftpd ftp           中途提示按y键继续。



2.查看安装是否成功,


centos7查看ftp端口 centos查看ftp服务_配置文件_03


#ftp XXX.XXX.XXX.XXX  这里用自己当前电脑的IP地址,匿名登录用户名写: anonymous ,密码空直接回车,成功登录会有上图信息。



3.配置vsftp


修改配置文件


#vi /etc/vsftpd/vsftpd.conf


取消下面内容前面的注释或者把这些内容都注释掉,在末尾自己添加:


anonymous_enable=YES/NO  是否允许匿名用户访问 


local_enable=YES/NO  设置本地用户是否可以访问,如果为NO 则所有虚拟用户都将不能访问,因为虚拟用户访问在主机上其实是以本地用户访问的


pam_service_name=vsftpd  pam认证文件名 在/etc/pam.d/vsftpd


chroot_list_enable=YES   限定用户不可以离开主目录


chroot_list_file=/etc/vsftpd/chroot_list    启用chroot_list_file配置项指定的用户列表文件 


guest_enable=YES    启用虚拟用户功能


guest_username=ftp  指定虚拟用户的宿主用户,centos系统自带ftp用户(此处也可设置为apache或者nginx用户)


user_config_dir=/etc/vsftpd/vuser_conf  设置虚拟用户个人配置文件(此文件后面不能出现空格),如图:


centos7查看ftp端口 centos查看ftp服务_主目录_04


注:vi编辑器打开文件之后按i键进入编辑模式,编辑完毕按ESC退出编辑模式,按:wq然后回车,保存退出。



4.安装db4,和第一步一样,见图,不BB了。yum install db4 db4-utils db4-devel db4-tcl


centos7查看ftp端口 centos查看ftp服务_主目录_05



5.创建chroot_list文件,注:见第三步chroot_list_file=/etc/vsftpd/chroot_list这一项,


把/etc/vsftpd/vsftpd.conf 中guest_username项的值写到文件中。


#vi /etc/vsftpd/chroot_list


按i键,输入ftp,ESC——:wq——回车。



6.创建虚拟用户的目录


#vi /etc/vsftpd/vftpuser.txtx(注,基数行写帐号,偶数行写密码,见图)


centos7查看ftp端口 centos查看ftp服务_主目录_06


然后保存退出。



7.生成虚拟用户口令文件和认证文件,


#db_load -T -t hash -f /etc/vsftpd/vftpuser.txtx /etc/vsftpd/vftpuser.db


#vi /etc/pam.d/vsftpd


注释掉/etc/pam.d/vsftpd中所有的内容,因为不要本地用户的认证了,


32位系统增加以下两句:


auth      required     pam_userdb.so db=/etc/vsftpd/vftpuser


account   required     pam_userdb.so db=/etc/vsftpd/vftpuser


64位系统增加以下两句:


auth   required    /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser 


account required    /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser


centos7查看ftp端口 centos查看ftp服务_配置文件_07


8.创建vi /etc/vsftpd/vftpuser.txtx中写入的用户自己的配置文件,路径是/etc/vsftpd/vsftpd.conf中的user_config_dir=/etc/vsftpd/vuser_conf路径,文件名就是基数行的用户名,


#mkdir /etc/vsftpd/vuser_conf/


#vi /etc/vsftpd/vuser_conf/zccftp1


写入如下内容:


local_root=/var/www


write_enable=YES


download_enable=YES


anon_world_readable_only=NO


anon_upload_enable=YES


anon_mkdir_write_enable=YES


anon_other_write_enable=YES


local_umask=022


保存退出。


centos7查看ftp端口 centos查看ftp服务_配置文件_08



9.赋权


#chmod 777 /var/www/   (如果guest_username=nginx/apache,则此处可把权限设为700)


这两步根据自己需要来看,我只是演示,大家可以查查linux的权限和虚拟用户配置文件,自行设定。



10.重启ftp服务:#service vsftpd restart

    让系统服务随着系统启动而启动:  #chkconfig vsftpd on



11.测试:

centos7查看ftp端口 centos查看ftp服务_虚拟用户_09

centos7查看ftp端口 centos查看ftp服务_主目录_10

******************************************************************

chroot_local_user=YES
chroot_list_enable=YES(这行可以没有, 也可以有)
chroot_list_file=/etc/vsftpd.chroot_list
那么, 凡是加在文件vsftpd.chroot_list中的用户都是不受限止的用户
即, 可以浏览其主目录的上级目录。

所以, 如果不希望某用户能够浏览其主目录上级目录中的内容,可以如上设置, 然后在
文件vsftpd.chroot_list中不添加该用户即可(此时, 在该文件中的用户都是可以浏览其主目录之外的目录的).
或者, 设置如下:
chroot_local_user=NO
chroot_list_enable=YES(这行必须要有, 否则文件vsftpd.chroot_list不会起作用)
chroot_list_file=/etc/vsftpd.chroot_list
然后把所有不希望有这种浏览其主目录之上的各目录权限的用户添加到文件vsftpd.chroot_list(此时, 在该文件中的用户都是不可以浏览其主目录之外的目录的)中即可(一行一个用户名)。