利用vsftpd搭建ftp服务器

目录

起因是帮朋友弄一个网站,服务器是最小化安装,并没有安装任何其他的cpanel软件,要实现的需求是建立一个用户chroot到一个特殊的目录。 安装vsftpd,很简单。

yum install vsftpd
/etc/init.d/vsftpd start

这样,我们就启动vsftpd服务了。按照默认的配置是可以匿名登录的。

cat /etc/vsftpd/vsftpd.conf | grep -v "#"
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
user_config_dir=/etc/vsftpd/user_config
tcp_wrappers=YES

Vsftpd的配置中,有几个注意的选项。

anonymous_enable=NO 这个会禁用匿名登录。

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list这三个选项是分别是默认限制用户在自己的主目录中。启用chroot列表。指定chroot文件的位置

userlist_enable=YES

userlist_deny=YES

userlist_file=/etc/vsftpd/user_list这三个选项是启用userlist功能。设置在userlist中的用户将无法登录vsftpd服务。设置userlist文件的位置。

实现特定用户限制在特定目录的设置,如下

user_config_dir=/etc/vsftpd/user_config 设置自定义用户配置文件的目录。在该目录创建文件,以用户名为文件名ftp,内容为

local_root=/var/www/test这样当ftp登录时,会自动限制用户test只能访问/var/www/test目录。