02.Linux安装vsftpd
第一种:
转自并整理:http://www.jianshu.com/p/9abad055fff6
yum install –y vsftpd cd /etc/vsftpd/ vim vsftpd.conf anonymous_enable=NO local_enable=YES ascii_upload_enable=YES ascii_download_enable=YES chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list vim chroot_list 插入ftpuser useradd -d /var/ftp/public -g ftp -s /sbin/nologin ftpuser passwd userftp vim /etc/selinux/config SELINUX=disabled service vsftpd start
service iptables stop
chkconfig iptables off
chkconfig vsftpd on
reboot now
一、通过yum安装vsftpd
yum install -y vsftpd
二、修改vsftpd的配置文件
vi /etc/vsftpd/vsftpd.conf
修改配置文件如下:
1.不允许匿名访问
anonymous_enable=NO
2.允许使用本地帐户进行FTP用户登录验证
local_enable=YES
3.使用户不能离开主目录
当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list
配置文件最后添加
allow_writeable_chroot=YES
要不然会报错
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
如果/etc/vsftpd/chroot_list不存在,则需要创建该文件
vi /etc/vsftpd/chroot_list
插入ftpuser
:wq直接保存并退出就行。
4.设定支持ASCII模式的上传和下载功能。
ascii_upload_enable=YES
ascii_download_enable=YES
最后 :wq保存修改,重启vsftpd
systemctl restart vsftpd.service
三、新建FTP用户
useradd -d /var/ftp/public_root -g ftp -s /sbin/nologin ftpuser
修改该FTP用户密码
passwd ftpuser
四、登录FTP
   我使用的是FileZilla FTP客户端测试的登录

-----------------------------------------------------------------华丽的分割线------------------------------------------------------------------
第二种:
转自并整理:http://pcvc.net/blog/2015/08/09/centos-7-installation-configuration-do-vsftpd-ftp-service/
1.在安装前查看是否已安装vsftpd
[root@localhost ~]# rpm -q vsftpd vsftpd-3.0.2-9.el7.x86_64
2.如果有显示类似以上的信息,说明已经安装vsftpd,如果没有,用yum安装:
[root@localhost ~]# yum -y install vsftpd
3.查看一下vsftpd安装在哪:
[root@localhost ~]# whereis vsftpd vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz
4.启动vsftpd服务:
[root@localhost ~]# systemctl start vsftpd.service
5.对于从未使用过vsftpd的Linux菜鸟来说,在配置之前,简单了解一下vsftpd服务的过程相当有必要的。一般情况下我们都是按分配的用户去访问各自的目录,vsftpd的用户分为系统用户和虚拟用户,系统用户也就是系统实际存在的Linux用户,而虚拟用户则是存在于配置文件里面的
    A.安装完默认情况下是开启匿名登录的,对应的是 /var/ftp 目录,这时只要服务启动了,就可以直接连上FTP了,用户名密码都是anonymous。
B.系统用户方式比较简单,创建系统用户,确保用户能对FTP目录进行读写就可以了
[root@localhost ~]# useradd -g root -M -d /var/www/html -s /sbin/nologin ftpuser [root@localhost ~]# passwd ftpuser [root@localhost ~]# 输入密码
 把 /var/www/html 的所有权给ftpuser.root,这样就可以通过ftpuser用户连接FTP了
[root@localhost ~]# chown -R ftpuser.root /var/www/html
    C.至于虚拟用户需要做的步骤就比较多了。首先虚拟用户的用户认证是通过pam方式去认证的,pam文件里面指定了认证的db文件,db文件又是通过明文用户名和密码文件生成而来,为何要这么绕我也不大清楚。那么首先我们要指定pam文件,这个在 /etc/vsftpd/vsftpd.conf 配置文件是通过pam_service_name=vsftpd 配置指定的,其位置是 /etc/pam.d/vsftpd,编辑该文件,把文件内容全部注释掉,加上以下两行:
64位系统:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
32位系统:
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
    db=/etc/vsftpd/vuser_passwd 指定了db文件的位置,接下来就是生成db文件,由于db文件是通过明文用户名和密码文件生成而来,所以先创建一个保存明文用户名和密码的文件 vuser_passwd.txt
[root@localhost ~]# vi /etc/vsftpd/vuser_passwd.txt
该文件奇行为用户名,偶行为密码:
pcvc
iampasswd
然后通过以下命令生成db文件:
[root@localhost ~]# cd /etc/vsftpd [root@localhost vsftpd]# db_load -T -t hash -f vuser_passwd.txt vuser_passwd.db
  至此用户的认证就知道怎么一回事了,如果要添加新的用户,在编辑 vuser_passwd.txt 后要再次生成一下db文件。然后现在每个用户的具体配置,如指向目录、可读写权限等又是在哪配置的呢,原来它是通过一个用户对应一个配置文件来实现的,且这个文件必须用FTP用户名去做文件名,建一个目录专门存放这些文件:
[root@localhost vsftpd]# mkdir vuser_conf [root@localhost vsftpd]# vi vuser_conf/pcvc
文件内容大致如下:
local_root=/var/www/pcvcnet write_enable=YES anon_umask=022 anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
  接下来就是根据需要和以上各文件信息来修改配置文件 /etc/vsftpd/vsftpd.conf 了,启用或更改以下配置的值:
anonymous_enable=NO # 禁用匿名登录 ascii_upload_enable=YES ascii_download_enable=YES chroot_local_user=YES # 启用限定用户在其主目录下
以下配置是需要自己手工添加:
guest_enable=YES # 设定启用虚拟用户功能 guest_username=ftpuser # 指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了 user_config_dir=/etc/vsftpd/vuser_conf # 虚拟用户配置文件存放的路径 allow_writeable_chroot=YES # 如果启用了限定用户在其主目录下需要添加这个配置
  用 systemctl restart vsftpd.service 重新启动服务即可用虚拟用户登录FTP了。
如果系统启用了防火墙和SELinux,那么还要做以下配置。
防火墙添加FTP服务:
[root@localhost vsftpd]# firewall-cmd --permanent --zone=public --add-service=ftp [root@localhost vsftpd]# firewall-cmd --reload
设置SELinux:
[root@localhost vsftpd]# getsebool -a | grep ftp [root@localhost vsftpd]# setsebool -P ftpd_full_access on
添加新的虚拟用户步骤如下:
  A.编辑 vuser_passwd.txt 文件,添加用户名和密码:
# cd /etc/vsftpd # vi vuser_passwd.txt new_ftp_user new_ftp_user_password
  B.重新生成 vuser_passwd.db 文件:
# db_load -T -t hash -f vuser_passwd.txt vuser_passwd.db
C.创建用户配置文件:
# cd vuser_conf # vi new_ftp_user
配置文件内容:
local_root=/new/ftp/directory write_enable=YES anon_umask=022 anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
D.重启服务:
# systemctl restart vsftpd.service

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号