安装配置vsftpd

来自个人维基
跳转至: 导航搜索

一、安装

很简单:

apt-get install vsftpd

二、配置

这里才是重点,vsftpd支持两种形式的用户,一为本地用户,即为当前电脑上的用户;二为虚拟用户,即只是ftp上的用户,在本地电脑中实际这个用户并不存在。

这里我们先说使用本地用户来使用ftp吧。

在安装好vsftpd后,会在/etc/目录下生成一个配置文件:

/etc/vsftpd.conf

我们下面所做的配置更改其实都是更改这个文件,当然更改后需要把ftp重启,后面这点将不再强调:

# /etc/init.d/vsftpd restart

默认情况下,vsftpd是不允许任何本地用户直接通过ftp登陆的,所以我们先要打开这个权限:

# Uncomment this to allow local users to log in.
#local_enable=YES #把开头的注释去掉即可

打开权限后,原则上来说,本地的任何用户都能够通过ftp登陆了,读者可以验证一下……

当然,你肯定登陆不上,为什么?vsftpd -- very saft ftp,如果这样的话就对不起 vsftpd这个名字了(想像一下以root形式登陆……)

因为在安装之后,vsftpd已经把 root这类常用的用户加入了屏蔽列表:

/etc/ftpusers:

root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
nobody

为了方便管理,我们还是新建一个用户吧:

# useradd -G ftp -d /home/webadmin -M webadmin 

设置密码:

# passwd webadmin

为对应目录增加webadmin的读写权限:

# chown webadmin.webadmin /home/webadmin

好了,再登陆试试?


其他的一些配置:

...

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
# 关闭匿名登陆
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
# 允许使用本地帐户登陆ftp
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
# 使能写操作
write_enable=YES
#
# You may restrict local users to their home directories.  See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
# 使用户只能在自己的家目录操作
chroot_local_user=YES

...

三、补充

1. 530 Login incorrect.

将 /etc/pam.d/vsftpd中下一句注释:

# auth  required        pam_shells.so

2. 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

方案一,将 ftp主目录去除写权限

$ chmod a-w /home/webadmin

方案二,/etc/vsftpd.conf中加入

 allow_writeable_chroot=YES


其他参考资料:

http://www.linuxdiyf.com/viewarticle.php?id=85618

http://hi.baidu.com/wangyongcan/item/785af12dabcc98d70e37f9c4

http://linux.chinaunix.net/techdoc/net/2006/02/15/927763.shtml

http://www.cnblogs.com/hhuai/archive/2011/02/12/1952647.html