vsftpd在Ubuntu 64位下的多用户多目录配置

更多内容请看:http://www.bdtool.net/ linux

研究了两天vsftpd,从网上找了不少资料,不是出这问题就是那问题,幸亏终于解决了,下面贴出个人配置过程。不喜勿喷。。。 shell

1、安装vsftpd 数据库

sudo apt-get install vsftpd

安装完之后大体的目录介绍 安全

/etc/vsftpd/vsftpd.conf 服务器

主配置文件 测试

/usr/sbin/vsftpd ui

Vsftpd的主程序 spa

/etc/rc.d/init.d/vsftpd .net

启动脚本 日志

/etc/pam.d/vsftpd

PAM认证文件(此文件中file=/etc/vsftpd/ftpusers字段,指明阻止访问的用户来自/etc/vsftpd/ftpusers文件中的用户)

/etc/vsftpd/ftpusers

禁止使用vsftpd的用户列表文件。记录不容许访问FTP服务器的用户名单,管理员能够把一些对系统安全有威胁的用户帐号记录在此文件中,以避免用户从FTP登陆后得到大于上传下载操做的权利,而对系统形成损坏。(注意:linux-4中此文件在/etc/目录下)

/etc/vsftpd/user_list

禁止或容许使用vsftpd的用户列表文件。这个文件中指定的用户缺省状况(即在/etc/vsftpd/vsftpd.conf中设置userlist_deny=YES)下也不能访问FTP服务器,在设置了userlist_deny=NO时,仅容许user_list中指定的用户访问FTP服务器。(注意:linux-4中此文件在/etc/目录下)

/var/ftp

匿名用户主目录;本地用户主目录为:/home/用户主目录,即登陆后进入本身家目录

/var/ftp/pub

匿名用户的下载目录,此目录需赋权根chmod 1777 pub(1为特殊权限,使上载后没法删除)

/etc/logrotate.d/vsftpd.log

Vsftpd的日志文件



2、配置用户

在/etc下建立目录vsftpd

mkdir vsftpd
cd vsftpd
vi user.txt

user.txt中加入用户名、密码,奇数行为用户名,偶数行为密码

ftp1
ftp1
ftp2
ftp2

使用db_load命令将用户生成数据库

若是没有db_load命令先安装

apt-get install db-util

而后生成数据库

db_load -T -t hash -f user.txt user.db
sudo chmod 600 user.db

3、建立不一样用户的配置

mkdir user_conf
cd user_conf
sudo touch ftp1 ftp2  //对应user.txt中的用户

在ftp1中写入:主要是测试,先简单的写

anon_world_readable_only=NO
local_root=/opt/vsftpd/ftp1

在ftp2中写入: 

anon_world_readable_only=NO
local_root=/home/ftp    //与ftp1彻底不一样的两个目录

4、修改pam.d下的vsftpd,我就是在这走了不少弯路,把vsftpd所有贴出,供你们看与网上的有什么区别

cd /etc/pam.d
vi vsftpd
auth    required        pam_userdb.so   db=/etc/vsftpd/user
account required        pam_userdb.so   db=/etc/vsftpd/user

其中db=....指向咱们以前创建的user.db

5、建立虚拟账号:

sudo useradd virtual -d /opt/vsftpd -s /sbin/nologin  //不容许登陆
chmod a-w /opt/vsftpd   //修改目录的权限
chown virtual:virtual /opt/vsftpd   //修改目录属于的用户组,由于咱们建立了两个ftp位置,因此都要修改权限、用户组

chmod a-w /home/ftp
chown virtual:virtual /home/ftp

6、修改/etc/vsftpd.conf

#配置
listen=YES

#匿名用户配置
#是否开启匿名用户登陆
anonymous_enable=NO

xferlog_std_format=YES
#使用上传下载日志,日志文件默认为/var/log/vsftpd.log,能够经过xferlog_file选项修改
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
#日志使用标准xferlog格式
xferlog_std_format=YES

local_enable=YES
use_localtime=YES
write_enable=YES

guest_enable=YES
guest_username=virtual  //对应前面添加的用户virtual
user_config_dir=/etc/vsftpd/user_conf   //对应前面添加的每一个用户不一样配置的目录

dirmessage_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd   //对应/etc/pam.d/vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd
userlist_enable=YES
相关文章
相关标签/搜索