安装配置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