vsftpd
1. 安装 ftp 服务端 vsftpd
$ sudo apt-get install vsftpd
# 启动 ftp 服务端
$ sudo service vsftpd start
# 查看是否已打开 ftp 的监听端口 21
$ sudo netstat -tulnp|grep 21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 3272/vsftpd
# 访问 ftp [默认情况下匿名用户被禁用了]
ftp://user:pass@hostname/
# 关闭 ftp 服务端
$ sudo service vsftpd stop
2. 配置
# vsftpd 配置文件
/etc/vsftpd.conf
# vsftpd 日志文件
/var/log/vsftpd.log
# 禁止登录用户
/etc/ftpusers
# 认证用户访问目录 [IE 里默认为 /]
/home/userName
# 匿名用户访问目录
/srv/ftp
3. 自定义配置
# 备份
$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup
3.1 chroot 限定
# 不允许 chroot_list_file 中指定的用户改变根目录
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
# 只允许 chroot_list_file 中指定的用户改变根目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
3.2 设置认证用户
# 允许认证用户访问
local_enable=YES
# 认证用户拥有写权限
write_enable=YES
# 创建用户
$ sudo useradd ftpuser1 -g ftp -d /home/ftp -s /bin/false
# 设置密码
$ sudo passwd ftpuser1
# 修改 /etc/vsftpd.conf
pam_service_name=ftp
# 默认情况下新添加的用户会显示在登录界面中,可通过下述操作让其隐藏
System -> Administration -> Login Screen -> 不勾选 Show list of users 即可
3.3 设置匿名用户
# 允许匿名访问
anonymous_enable=YES
# 匿名访问初始目录
anon_root=/srv/ftp/public
# 匿名用户拥有浏览和下载权限
anon_world_readable_only=YES
# 匿名用户可以重命名,删除文件[关闭的话无法续传]
anon_other_write_enable=YES
# 限制匿名用户传输率 n byte/s [0表示不限制]
anon_max_rate=0
# 禁止匿名用户创建目录
anon_mkdir_write_enable=NO
# 禁止匿名用户上传
anon_upload_enable=NO
参考
http://wiki.ubuntu.org.cn/Vsftpd
http://www.xlightftpd.com/download.htm