使用yum安装libdb-utils
查看libdb-utils里的所有可用指令。
创建虚拟用户
useradd -d /data/web/ -c"vsftpd虚拟用户" -s /sbin/nologin vuser_ftp
创建一个记录ftp虚拟用户的用户名和密码文件。(奇数用户名,偶数密码)
cat >/etc/vsftpd/login.txt<<EOF
user1
user1passwd
user2
user2passwd
EOF
生成虚拟用户认证文件。
db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login.db
将文件修改为600权限。
chmod 600 etc/vsftpd/vsftpd_login.db
使用ls查看权限是否修改成功。
修改主配置文件
修改ftp服务配置文件/etc/vsftpd/vsftpd.conf,可以把/etc/vsftpd/vsftpd.conf 备份一下然后修改vsftpd.conf 或者备份之后,重写一个vsftpd.conf文件。
cd /etc/vsftpd/
\cp -av vsftpd.conf vsftpd.conf_bak_localuser
cat >/etc/vsftpd/vsftpd.conf<<EOF
###### $(date +%F-%T)--- hanyw -begin ######
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
listen=YES
userlist_enable=YES
#tcp_wrappers=YES
max_per_ip=5
max_clients=100
###### 下面是关于虚拟用户的配置-begin ######
#打开虚拟用户功能
guest_enable=YES
#将所有虚拟用户映射成handuoduo这个本地用户,此用户是之前新建的用户
guest_username=vuser_ftp
#ftp用户的pam验证方式,默认是vsftpd,必须改掉
pam_service_name=ftp.vu
#这里放置每个虚拟用户的配置文件
user_config_dir=/etc/vsftpd/vsftpd_user_conf
#####特别注意:vsftpd.conf 这个配置文件中每行的两端都不能有空格######
###### 下面是关于虚拟用户的配置-end ######
###### $(date +%F-%T)--- hanyw -end
EOF
创建vsftpd服务验证文件
使用rpm -ql vsftpd查找验证模块例文
cp -av `rpm -ql vsftpd |grep vsftpd.pam` /etc/pam.d/ftp.vu
修改配置文件
[ -f /usr/lib64/security/pam_userdb.so ] && [ -f /etc/vsftpd/vsftpd_login.db ] && \
cat >/etc/pam.d/ftp.vu<<EOF
auth required /usr/lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /usr/lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
EOF
注:操作系统是64位的,库文件位置在/usr/lib64目录下,使用find指令查找即可。
db= 定义的是验证数据文件存放的位置,这个文件是以.db结尾的。但是在/etc/pam.d/ftp.vu 中配置的时候不要加上.db
查看当前操作系统是否64位
uname -r 或 file /usr/bin/ls
创建单个用户的权限配置文件。
user1用户
cat >/etc/vsftpd/vsftpd_user_conf/user1<<EOF
anon_world_readable_only=no
write_enable=yes
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
local_root=/data/web/html
allow_writeable_chroot=YES
EOF
user2用户
cat >/etc/vsftpd/vsftpd_user_conf/user2<<EOF
anon_world_readable_only=no
write_enable=yes
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
local_root=/data/web/vsftp_data
allow_writeable_chroot=YES
EOF
创建虚拟用户家目录。
mkdir -pv /data/web/{html,vsftp_data}
修改权限
chown -R vuser_ftp. /data/web/
重启vsftpd服务,使用filezilla客户端认证
systemctl restart vsftpd
查看进程
ss -tulnap |grep vsftpd
可创建可删除可修改