我有一个 Microfocus Data Protector 10.91 的支持案例,最终发现是文件权限问题。用户hpdp
拥有的组users
不是预期的组omni
,因此我在修复本地用户后更改了所有受影响文件和目录的组。
实际上,该用户应该从 LDAP 中获取,但却在本地使用不同的组创建,从而导致问题。因此,我删除了本地用户并从 LDAP 导入了该用户。我已停止 Data Protector,重新启动了计算机,并成功启动了 Data Protector。所以一切似乎都很好。
备份工作,报告服务器定期刷新,但突然一些报告弹出错误,提示应删除并重新创建用户。
看看用户上下文中,我看到不再显示任何用户和组。但是ClassSpec
和 UserList
文件(以及WebAccess
)仍然存在且已填充。
即使我尝试重新创建管理员组,我仍然收到一个不明确的错误“添加群组时出错“带有标识符159:9995
。
我不知道可能出了什么问题,但我检查了 AppServer Java 进程是否以正确的 UID 和 GID 运行,并且至少可以通过 GID 读取相关文件。
在日志中我看到一些看起来像是查找用户的 SQL 语句的内容。
附加信息
/opt/omni/bin/omniusers -list
也没有输出任何内容。
在DPserver.log
我发现“获取组名:用户不属于有效组。“。
答案1
我成立问题是:至少我解决了问题:
受到这条信息的启发获取组名:用户不属于有效组。我怀疑 Java 程序无法从 LDAP 获取用户或组(通过 nsswitch)(尽管和都getent passwd hpdp
正常getent group omni
工作)。
因此,我首先使用 显示组条目,然后使用getent group omni
将该行添加到本地文件。接下来,我对用户条目执行了类似操作,使用显示条目,然后使用将条目添加到本地文件。/etc/group
vigr
getent passwd hpdp
vipw
/etc/passwd
最后刷新用户Data Protector GUI 中的上下文,用户和组又出现在那里!
我的/etc/snnswitch.conf
(SLES 12)包含(除其他行外):
passwd: compat
group: files ldap
passwd_compat: ldap
结论:Java应用服务器不使用系统调用来检查用户和组,而是直接访问火狐。