一、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账户访问有关,修改此文件
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 目录的权限改成755就OK了!
用本地用户登录的话,如果设置指定的登录目录,他就会登录到自己的家目录。
而且权限很大。
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=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。___已实验证明
注意:或者禁用chroot_local_user、chroot_list_file、chroot_list_enable可以解决500错误