我有一个 RPM,它运行一个 scriptlet 来添加用户并创建主目录。我之前在 CentOS 7 上使用过这个,但现在需要这个 RPM 在 Rocky Linux 8 上运行它,所以我重建了 RPM(它是 noarch,但需要其他更改),但在 Rocky 8 上安装 RPM 时遇到了这个问题涉及到添加用户,我在 CentOS 7 上没有遇到过:
useradd: cannot create directory /opt/system-installer
该脚本会进行一些检查,如有必要,会添加一个组,但实际上会运行命令:
useradd --system --gid usergroup --home-dir /opt/app-user --shell /sbin/nologin app-user --create-home --comment "App Management User"
如果我在终端中运行该命令,则没有问题,但每当我安装 RPM 时,都不会创建用户主目录,并且会遇到用户问题。我尝试在运行之前更改 scriptlet 以创建目录useradd
,但因为该目录已经存在,所以它也不会复制 .bash* 文件。
我也尝试过adduser
作为替代方案,但有同样的问题,它无法创建主目录。
作为 RPM scriptlet 的一部分运行命令可能与通过命令行或 bash 脚本运行命令不同(我也尝试过,没有问题”)?所有命令都运行为root
.
我的一个想法是作为一种临时措施,运行一个命令来复制其中的文件,/etc/skel
但这对我来说似乎不太正确。