配置本地用户
#创建用户
adduser user1
#编辑配置文件
vim /etc/vsftpd.conf | grep -v "#"
listen=yes
local_enable=YES #本地用户登陆限制
write_enable=YES #本地用户写权限限制
local_umask=022 #本地用户上传文件权限
dirmessage_enable=YES #默认
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
服务
#重启
systemctl restart vsftpd.service
#开启自动启动
systemctl enable vsftpd.service
#查看服务状态
systemctl status vsftpd.service
#本地用户设定
local_enable=YES|NO ##本地用户登陆限制
write_enable=YES|NO ##本地用户写权限限制
#本地用户家目录修改
local_root=/directory
#本地用户上传文件权限
local_umask=xxx
#限制本地用户浏览/目录 ;所有用户被锁定到自己的家目录中
chroot_local_user=YES
chmod u-w /home/*
#用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
#用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
配置匿名用户
cat /etc/vsftpd.conf | grep -v "#"
listen=yes #如果启用,vsftpd将以独立模式运行.这就意味着vsftpd不能由类inetd来启动.vsftpd应当直接执行. 由vsftpd自身监听和处理联接请求
anonymous_enable=YES #用于控制是否允许匿名用户登录.如果激活,ftp和anonymous都将被视为匿名用户登录
anon_umask=022 #匿名用户上传文件权限
anon_upload_enable=YES #匿名用户对目录有写权限
anon_mkdir_write_enable=YES #匿名用户将允许在某些情况下创建目录
anon_other_write_enable=YES #匿名用户将拥有除上载,和创建目录外更多的权限, 如删除和重命名
dirmessage_enable=YES #下面是默认的
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
给权限和属组。
/srv/ftp 匿名用户的默认目录。
#创建一个匿名用户的目录
mkdir /srv/ftp/pub/
#给匿名用户权限
chown ftp:ftp /srv/ftp/pub
服务
#重启
systemctl restart vsftpd.service
#开启自动启动
systemctl enable vsftpd.service
#查看服务状态
systemctl status vsftpd.service
配置虚拟用户
一、db生成虚拟用户数据库
#安装db数据库命令和vsftpd
aptitude install -y db5.3-util vsftpd
#编辑ftp用户登入名称和密码
mkdir /etc/vsftpd
cd /etc/vsftpd/
vim vuser #偶数用户,奇数密码
user1
123456
user2
123456
#创建一个数据库文件
touch /etc/vsftpd/vuser.db
#db数据库
db5.3_load -T -t hash -f vuser vuser.db
chmod 600 /etc/vsftpd/ftpuser.db
二、/etc/pam.d/vsftpd 数据库用户认证信息
vim /etc/pam.d/vsftpd
# Standard behaviour for ftpd(8).
#auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth sufficient pam_userdb.so db=/etc/vsftpd/vuser
account sufficient pam_userdb.so db=/etc/vsftpd/vuser
# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.
# Standard pam includes
@include common-account
@include common-session
@include common-auth
auth required pam_shells.so
三、修改主配置文件
vim /etc/vsftpd.conf
listen=YES
#listen_ipv6=YES
guest_enable=YES #允许访客登录
guest_username=vuser #访客用户映射到系统本地用户vuser
virtual_use_local_privs=YES #指定虚拟用户的权限为本地用户权限
user_config_dir=/etc/vsftpd/user_config #指定虚拟用户的配置文件路径为/etc/vsftpd/user_config
四、创建虚拟宿主用户
#创建在系统中不能登入的用户
useradd -m -d /home/vuser -s /bin/false vuser
五、创建虚拟用户的配置文件
mkdir /etc/vsftpd/user_config
touch /etc/vsftpd/user_config/vuser1
#编辑用户配置文件
vim /etc/vsftpd/user_config/vuser1
local_root=/home/vuser/user1 #指定虚拟用户的访问目录
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_upload_enable=YES
write_enable=YES
anon_umask=022
#复制vuser1到vuser2
cp -p /etc/vsftpd/user_config/vuser1 /etc/vsftpd/user_config/vuser2
#编辑用户配置文件
vim /etc/vsftpd/user_config/vuser2
local_root=/home/vuser/user2
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_upload_enable=YES
write_enable=YES
anon_umask=022
如果虚拟用户无法上传文件,需要检查虚拟用户宿主用户的访 /问权限。
六、创建虚拟用户访问目录
mkdir /home/vuser/user1
mkdir /home/vuser/user2
七、权限
chown vuser:vuser /home/vuser -R
chmod 777 /etc/vsftpd
八、测试
#安装ftp
aptitude install -y ftp
ftp 10.10.70.101
Connected to 10.10.70.101.
220 (vsFTPd 3.0.3)
Name (10.10.70.101:root): user1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.ss