一、vsftp安装篇

复制代码代码如下:


# 安装vsftpd

yum -y install vsftpd

# 启动

service vsftpd start

# 开启启动

chkconfig vsftpd on


二、vsftp相关命令之服务篇

复制代码代码如下:


# 启动ftp服务

service vsftpd start

# 查看ftp服务状态

service vsftpd status

# 重启ftp服务

service vsftpd restart

# 关闭ftp服务

service vsftpd stop

三、vsftp配置篇

复制代码代码如下:


#进入vsftpd配置文件

vim /etc/vsftpd/vsftpd.conf

# 禁止匿名用户anonymous登录

anonymous_enable=NO

# 允许本地用户登录

local_enable=YES

# 让登录的用户有写权限(上传,删除)

write_enable=YES

# 默认umask

local_umask=022

# 把传输记录的日志保存到/var/log/vsftpd.log

xferlog_enable=YES

xferlog_file=/var/log/vsftpd.log

xferlog_std_format=NO

# 允许ASCII模式上传

ascii_upload_enable=YES

# 允许ASCII模式下载

ascii_download_enable=YES

# 使用20号端口传输数据

connect_from_port_20=YES

# 欢迎标语

ftpd_banner=Welcome to use my test ftpserver.

# 接下来的三条配置很重要

# chroot_local_user设置了YES,那么所有的用户默认将被chroot

# 也就用户目录被限制在了自己的home下,无法向上改变目录。

# chroot_list_enable设置了YES,即让chroot用户列表有效。

# ★超重要:如果chroot_local_user设置了YES,那么chroot_list_file

# 设置的文件里,是不被chroot的用户(可以向上改变目录)

# ★超重要:如果chroot_local_user设置了NO,那么chroot_list_file

# 设置的文件里,是被chroot的用户(无法向上改变目录)

chroot_list_enable=YES

# touch /etc/vsftpd/chroot_list 新建

chroot_list_file=/etc/vsftpd/chroot_list

use_localtime=YES

# standalone模式在ipv4上运行

listen=YES

# PAM认证服务名,这里默认是vsftpd,在安装vsftpd的时候已经创建了这个pam文件,

# /etc/pam.d/vsftpd,根据这个pam文件里的设置,/etc/vsftpd/ftpusers

# 文件里的用户将禁止登录ftp服务器,比如root这样敏感的用户,所以你要禁止别的用户

# 登录的时候,也可以把该用户追加到/etc/vsftpd/ftpusers里。

pam_service_name=vsftpd

# 重启 vsftpd

service vsftpd restart


四、vsftp用户篇

复制代码代码如下:


# 创建用户

useradd -d /home/webapps/www.xxx.com -s/sbin/nologin -M hzh1990

# 设置用户到文件夹

chown -R username/home/webapps/www.xxx.com/public

# 设置权限

chown -R 777  /home/webapps/www.xxx.com/public

# 添加密码

passwd hzh1990 -> 密码 -> 确认密码


五、问题整理


 

vsftpd 错误:530 and 500 错误解决方法


VSFTP  530 Login incorrect  And    500 OOPS:vsftpd: refusing to run with writable anonymous root
错误的解决方法

/etc/pam.d文件中的vsftp限制了ftp账户访问有关,修改此文件

Centos 6.5 简易部署VSFTP_Centos6.5 vsftp


500 OOPS: vsftpd: refusing to run withwritable anonymous root


/home/ftp 目录的权限问题。

drwxrwxrwx 3 root root 4096 2011-08-2520:15 ftp/

vsFTPd出于安全考虑,是不准让ftp用户的家目录的权限是完全没有限制的。

把/home/ftp 目录的权限改成755OK了!



用本地用户登录的话,如果设置指定的登录目录,他就会登录到自己的家目录。

而且权限很大。


1,指定登录到的根目录

local_root=/home/ftp (那他就登录到这个目录,权限就跟就是这个目录的权限)

可以变换登录的根目录。

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.chroot_list

出现这个错误:

500 OOPS: could not read chroot() listfile:/etc/vsftpd.chroot_list

Login failed.

解决:是因为没有这个文件。在/etc/下面新建一个chroot.chroot_list


通过与chroot_local_user=YES/NO搭配能实现以下几种效果:

1、chroot_list_enable=YESchroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。___已实验证明

注意:或者禁用chroot_local_userchroot_list_filechroot_list_enable可以解决500错误