Мне дали частично полную спецификацию об/мин для сервиса, который мы пишем. Это добирается до создания необходимых каталогов, копирования файлов, установки полномочий, и т.д., но это не заставляет необходимую систему считать это, услуга будет работать под. Мне сказали, что лучше для об/мин заботиться об этом, таким образом, я добавил
Requires(pre): /usr/sbin/useradd
%pre
useradd -r -d /path/to/program -s /bin/false myservice
Это преуспевает в том, чтобы делать учетную запись пользователя (и связанная группа), поэтому позже, когда она пытается установить владение / полномочия на файлах сервиса, который успешно выполняется также.
Моя текущая проблема, a), если учетная запись пользователя уже существует, сбои установки об/мин потому что useradd
сбои (потому что пользователь уже существует); и b), который я не знаю, как иметь rpm -e myservice
также удалите связанного пользователя и группу.
Я на самом деле решил это независимо путем рассмотрения других спецификаций об/мин, которые сделали подобные вещи. Если Вы просто хотите добавить пользователя (условно), используйте ссылку Ignacio. Я сделал это:
Requires(pre): /usr/sbin/useradd, /usr/bin/getent
Requires(postun): /usr/sbin/userdel
%pre
/usr/bin/getent group myservice || /usr/sbin/groupadd -r myservice
/usr/bin/getent passwd myservice || /usr/sbin/useradd -r -d /path/to/program -s /sbin/nologin myservice
%postun
/usr/sbin/userdel myservice
Это удостоверяется, что об/мин "моется после себя", но все еще обеспечивает способность установить, даже если учетная запись уже существует.