【环境信息】
系统:arm,x86虚拟机
内存:4g
cpu:4核
OS版本:
openeulerversion=openEuler-20.03-LTS-SP2
compiletime=2021-05-07-12-45-29
gccversion=7.3.0-20210203.37.oe1
kernelversion=4.19.90-2104.21.0.0083.oe1
openjdkversion=1.8.0.282.b08-8.oe1
组网:需2台机器
【出现概率】
SP2必现,SP1正常
【问题复现步骤】
预置条件:
1、关闭selinux和firewalld
setenforce 0
systemctl stop firewalld
2、节点1:yum install vsftpd
3、节点2:yum install ftp haproxy
测试步骤:
配置两个节点,节点1:ftp服务器,节点2:haproxy
1、节点1创建目录,mkdir -p /home/vsftpd/ftp
2、节点1创建文件,加入虚拟用户,奇数行代表用户名,偶数行代表密码
[root@localhost vsftpd]# cat /etc/vsftpd/loginuser.txt
ftpuser
123456
3、节点1执行命令生成虚拟数据库
db_load -T -t hash -f /etc/vsftpd/loginuser.txt /etc/vsftpd/login.db
4、节点1修改/etc/pam.d/vsftpd如下:
auth required pam_userdb.so db=/etc/vsftpd/login
account required pam_userdb.so db=/etc/vsftpd/login
auth sufficient pam_userdb.so db=/etc/vsftpd/login
account sufficient pam_userdb.so db=/etc/vsftpd/login
5、新建一个系统用户,使之不能登录系统,并改变目录所属用户组
useradd vsftpd -d /home/vsftpd -s /bin/false
chown vsftpd:vsftpd /home/vaftpd
6、节点1修改vsftpd的配置文件/etc/vsftpd/vsftpd.conf如下:
anonymous_enable=NO
write_enable=YES
guest_enable=YES
guest_username=vsftpd
local_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
pasv_enable=YES
pasv_min_port=10001
pasv_max_port=10002
pasv_address=[节点2ip]
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
listen=yes
listen_ipv6=no
pam_service_name=vsftpd
userlist_enable=NO
allow_writeable_chroot=YES
user_config_dir=/etc/vsftpd/user_conf
7、创建虚拟帐号配置
mkdir -p /etc/vsftpd/user_conf
touch /etc/vsftpd/user_conf/ftpuser
编辑/etc/vsftpd/user_conf/ftpuser,内容如下:
write_enable=YES
local_enable=YES
local_umask=077
local_root=/home/vsftpd/ftp
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=yes
anon_umask=022
8、节点1启动vsftpd,创建pub目录,并授予权限777
systemctl start vsftpd
mkdir -p /home/vsftpd/ftp/pub
chmod 777 /home/vsftpd/ftp/pub
9、节点2修改haproxy的配置文件/etc/haproxy/haproxy.cfg如下:
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
user haproxy
group haproxy
daemon
maxconn 4000
defaults
mode tcp
log global
option tcplog
option dontlognull
retries 3
timeout http-request 5s
timeout queue 1m
timeout connect 5s
timeout client 1m
timeout server 1m
timeout http-keep-alive 5s
timeout check 5s
maxconn 3000
frontend foxtrot-tango-papa-control
bind *:21
default_backend ftp_server_pool
frontend foxtrot-tango-papa01
bind *:10001-10002
default_backend foxtrot_tango_papa01
backend ftp_server_pool
server foxtrot-tango-papa01 [节点1ip] check port 21 inter 10s rise 1 fall 2
backend foxtrot_tango_papa01
server foxtrot-tango-papa01 [节点1ip] check port 21 inter 10s rise 1 fall 2
10、节点2启动haproxy
systemctl start haproxy
11、在节点2执行ftp [节点2ip]
[root@localhost ~]# ftp [节点2ip]
【预期结果】
1-8.配置更新后,vsftpd启动成功
9-10.配置更新后,haproxy启动成功
11.ftp服务器登录成功,能够上传下载文件
【实际结果】
1-8.配置更新后,查看vsftpd启动状态running,但报错缺少pam_userdb.so
9-10.配置更新后,haproxy启动成功
11.ftp服务器登录失败530,不能上传下载文件
【附件信息】
vsftpd_journalctl
pam_userdb.so是由pam软件包提供,请确认环境中是否正确安装了pam软件包
是缺少pam_userdb.so文件
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
SP2的pam在合入gdbm替换libdb后,pam_userdb.so丢失,转交由pam责任人分析
登录 后才可以发表评论