RHEL 8.5中执行su - userpodman后/run/user/$UID目录未创建($XDG_RUNTIME_DIR已正确定义)的问题求助
RHEL 8.5中执行su - userpodman后/run/user/$UID目录未创建($XDG_RUNTIME_DIR已正确定义)的问题求助
环境背景
我们正在使用RHEL 8.5系统,专门创建了一个名为userpodman的应用用户来执行podman命令。
创建该用户时使用了以下命令:
[root@machine ~]$ adduser userpodman [root@machine ~]$ usermod --add-subuids 10000-75535 userpodman [root@machine ~]$ usermod --add-subgids 10000-75535 userpodman [root@machine ~]$ loginctl enable-linger userpodman@
之后我们一直通过以下方式切换到该用户执行podman命令:
[root@machine ~]$ su - userpodman [userpodman@machine ~]$ podman ps # 预期的命令输出在此处
当前Podman版本信息:
[userpodman@machine ~]$ podman version Client: Podman Engine Version: 4.2.0 API Version: 4.2.0 Go Version: go1.18.4 Built: Wed Nov 9 14:16:58 2022 OS/Arch: linux/amd64
问题描述
这套配置原本运行完全正常,我们可以通过userpodman用户毫无问题地执行各种podman命令。但在主机持续运行一段时间后,奇怪的问题出现了:当执行su - userpodman切换用户后,/run/user/$UID目录并没有被自动创建——我确认过$XDG_RUNTIME_DIR环境变量是正确定义的,但对应的目录就是不存在。
这直接导致podman命令无法正常执行,报错提示无法访问该运行时目录。我尝试过手动创建这个目录并设置正确的权限:
mkdir -p /run/user/$(id -u userpodman) chown userpodman:userpodman /run/user/$(id -u userpodman) chmod 700 /run/user/$(id -u userpodman)
虽然这样能临时解决问题,但主机运行一段时间后,这个目录又会消失,问题再次重现。
想请教各位大佬,这个问题的根源可能是什么?有没有能彻底解决的持久化方案?
备注:内容来源于stack exchange,提问作者Flo
相关产品推荐
相关产品推荐

