vsftpd使用总结

vsftpd是centos下最常用的ftp软件,下面是一些使用总结。

1. 常用配置
如果是使用yum方式安装的话服务名为vsftpd,可以使用service命令进行启动、停止或重启,配置文件在/etc/vsftpd/vsftpd.conf。经常用的配置项:

listen_port=21 #监听的端口
ftpd_banner=Welcome to xxx FTP server. #自定义登录成功之后的欢迎信息,这个是全局的
dirmessage_enable=yes #自定义每个用户的欢迎信息,需要在ftp用户目录下创建.message文件,然后在文件中输入需要显示的信息
xferlog_file=/var/log/vsftpd.log #设置vsFTP的日志文件路径
max_client=100 #设置最大连接数
max_per=5 #每个ip支持的最大连接数
anon_max_rate=1048576 #设置匿名用户的传输速度,单位为b,例子中为1M=1024*1024
local_max_rate=1048576 #设置所有用户的传输速度,单位为b,例子中为1M=1024*1024

2. 设置匿名上传/下载
在vsftpd.conf配置文件下做如下设置可以允许匿名上传/下载:

anonymous_enable=yes #允许匿名登录
anon_upload_enable=yes #允许匿名用户上传
anon_mkdir_write_enable=yes #允许匿名用户写权限
anon_umask=022

3. 设置用户及用户目录
(1)如果没有ftp用户组则创建一个ftp用户组,然后创建一个不可登陆的用户名并指定其home目录

groupadd ftp
adduser -g ftp -s /sbin/nologin -d /home/test/ftp
passwd test

上面的adduser命名中的-d参数用来指定用户的home目录,最后使用passwd设定用户的密码。
(2)接下来为每个ftp账号创建一个独立的配置文件,首先在/etc/vsftpd/vsftpd.conf配置信息中设置每个用户的配置文件目录

user_config_dir=/etc/vsftpd/user_config

然后在/etc/vsftpd/user_config创建和ftp用户名同名的文件,如test,这个文件就是针对这个ftp用户的设置信息了,常用的配置如下:

local_enable=YES
write_enable=YES
local_umask=022
local_root=/home/ddclm/ftp #ftp的根目录

(3)将ftp用户限制在各自的home目录下,将/etc/vsftpd/vsftpd.conf配置文件中chroot_local_user设置成yes即可,这个设置是针对所有的ftp用户的,如果只限限制某些用户则只需在/etc/vsftpd/chroot_list文件中添加对应的用户即可,每行一个用户。

4. 为ftp用户设置多个目录
默认情况下vsftp每个用户只能设置一个home目录,如果允许管理多个目录的话需要使用mount命令绑定其他的目录,以test用户为例,假设其home目录为/home/test/ftp,其实际管理的路径为/wwwroot/web1和/wwwroot/web2,可以做如下设置:
首先在/home/test/ftp目录下创建两个目录webA和webB,然后使用mount命令将wwwroot下面的目录挂载在ftp的home目录下:

mount --bind /wwwroot/web1 /home/test/ftp/webA
mount --bind /wwwroot/web2 /home/test/ftp/webB

注意不要将目录的顺序搞错,如果搞反了就会发现目标目录是空的,里面的数据都不见了,这个时候不要慌张,只要使用umount取消挂载就可以了。

umount /home/test/ftp/webA

参考资料:
centos FTP服务器的架设和配置
VSFTP 如何让同一个用户有多个目录的权限
Linux下挂载与取消挂载

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注