操作IBM MQ队列管理器遇AMQ7077E授权失败,附FFST报告求助
问题分析与解决方案
根源定位
从提供的FFST报告可以明确:
- 系统调用
getpwuid_r(998)失败,导致IBM MQ无法解析UID为998的用户信息,只能使用UNKNOWN作为用户名 - MQ用
UNKNOWN用户进行授权校验时,必然触发AMQ7077E权限错误,这和你提到的用户名密码长度限制无关(该限制针对客户端连接场景,不影响本地MQ操作)
修复步骤
校验mqm用户系统配置
执行以下命令确认mqm用户的UID与系统条目:id mqm grep mqm /etc/passwd getent passwd 998正常输出应显示mqm用户的UID为998,且
getent passwd 998返回完整的用户行(如mqm:x:998:998::/var/mqm:/bin/bash)重建缺失的mqm用户
如果上述命令无有效输出,说明mqm用户/组缺失,执行以下命令重建:groupadd -g 998 mqm useradd -u 998 -g mqm -d /var/mqm -m -s /bin/bash mqm chown -R mqm:mqm /var/mqm /opt/mqm验证操作权限
切换到mqm用户后执行MQ操作:su - mqm crtmqm test此时应能正常创建队列管理器,不会触发授权错误
紧急临时规避
若暂时无法修复用户配置,可设置环境变量关闭FFST报告,但无法解决授权问题:export AMQ_NOFFST_PROCESS_UID=1
完整FFST报告
IBM MQ 首次故障症状报告 | | ========================================= | | | | 日期/时间 :- 2023年3月8日 周三 --:--:-- EET | | UTC时间 :- | | UTC时间偏移量 :- 120 (EET) | | UTC日期/时间 :- 2023-03-08 18:42:28.701984 (1678300948701984) | | 主机名 :- localhost.localdomain | | 操作系统 :- Linux 3.10.0-1127.el7.x86_64 | | 系统详情 :- CentOS Linux 7 (Core) | | PIDS :- | | 版本号 :- 9.3.0.2 | | 产品全名 :- IBM MQ for Linux (x86-64 platform) | | 供应商 :- IBM | | 已注册操作系统 :- 1 (libmqmcs_r.so) 已安装 | | 数据路径 :- /var/mqm | | 安装路径 :- /opt/mqm | | 安装名称 :- Installation1 (1) | | 许可证类型 :- 生产版 | | 探针ID :- XY051070 | | 应用名称 :- MQM | | 组件 :- InitPrivateServices | | 源文件名 :- /build/jslot0/p930_P/src/lib/cs/unix/generic/amqxi | | inx.c | | 行号 :- 2725 | | 构建日期 :- 2022年12月14日 | | 构建版本 :- p930-002-221214 | | 构建类型 :- IKAP - (生产版) | | 有效用户ID :- 0 () | | 真实用户ID :- 0 () | | 程序名称 :- crtmqm | | 参数 :- test | | 标准流 :- 0 1 2 | | 寻址模式 :- 64位 | | LANG :- en_US.UTF-8 | | 进程 :- 1987 | | 进程(线程) :- 1987 | | 线程 :- 1 ProcessInit | | 性能计数器 :- 2388170619672 | | 用户应用 :- FALSE | | 最后HQC :- 0.0.0-0 | | 最后HSHMEMB :- 0.0.0-0 | | 最后对象名 :- | | 主要错误码 :- xecI_S_NOT_AUTHORIZED | | 次要错误码 :- OK | | 探针类型 :- INCORROUT | | 探针严重程度 :- 1 | | 探针描述 :- AMQ6125E: 发生内部IBM MQ错误。 | | FDC序列号 :- 0 | | 注释1 :- xcsGetpwuid 无法获取有效UID为1001的进程的密码条目 | | 。 | | 注释2 :- 详情: geteuid() 返回998; getpwuid_r(998) | | 调用失败,errno=0。 | | 注释3 :- 将使用用户名"UNKNOWN",这可能导致后续授权失败。注意可通过导出环境变量AMQ_NOFFST_PROCESS_UID关闭此FFST报告。 | | | +-----------------------------------------------------------------------------+ MQM函数栈 xcsInitialize InitPrivateServices xcsFFST MQM跟踪历史 { xppInitialiseDestructorRegistrations } xppInitialiseDestructorRegistrations rc=OK { xcsGetEnvironmentInteger -{ xcsGetEnvironmentString -} xcsGetEnvironmentString rc=xecE_E_ENV_VAR_NOT_FOUND } xcsGetEnvironmentInteger rc=xecE_E_ENV_VAR_NOT_FOUND { xcsGetEnvironmentInteger -{ xcsGetEnvironmentString -} xcsGetEnvironmentString rc=xecE_E_ENV_VAR_NOT_FOUND } xcsGetEnvironmentInteger rc=xecE_E_ENV_VAR_NOT_FOUND
内容的提问来源于stack exchange,提问作者amaes
相关产品推荐
相关产品推荐

