我正在尝试创建一个需要为用户添加自定义主目录的RPM。在预安装脚本中,它尝试执行此命令(是的,myapp已经存在):
useradd -c "My Application's User" -d /usr/myapp -f 0 -s /bin/bash -g myapp myapp
如果我以root身份执行此命令,则可以正常工作。如果我以root身份运行时通过RPM执行此命令,则会收到以下错误:
useradd: cannot create directory /usr/myapp
在安装/运行安装脚本时,RPM是否以其他用户身份运行?有没有办法完成我想要完成的任务?
谢谢!
答案 0 :(得分:1)
它可能连接到SELinux。尝试在useradd之前运行setenforce 0
,或者在/ etc / selinux / config中禁用SELinux,但我必须警告你:这不是一个好习惯。如果你想使用SELinux(你可能想要),创建不在/ home /下的用户会导致麻烦。我想你最好重新考虑一下。在/ usr下设置主目录的原因是什么?
答案 1 :(得分:0)
这通常发生在:
useradd -d /usr/something/myapp
和/ usr / something不存在。 / usr / something必须存在。你可以打电话给
mkdir -p /usr/something
位于%pre
的顶部