Recebi uma especificação RPM parcialmente completa para um serviço que estamos escrevendo. Chega ao ponto de criar os diretórios necessários, copiar arquivos, definir permissões etc., mas não cria a conta de sistema necessária na qual o serviço será executado. Foi-me dito que é melhor para o RPM cuidar disso, então eu adicionei
Requires(pre): /usr/sbin/useradd
%pre
useradd -r -d /path/to/program -s /bin/false myservice
Isso consegue criar a conta de usuário (e o grupo associado), e, posteriormente, quando ele tenta definir a propriedade / permissões nos arquivos do serviço, também obtém êxito.
Meu problema atual é: a) se a conta do usuário já existe, a instalação do RPM falha porque useradd
falha (porque o usuário já existe); e b) não sei como rpm -e myservice
remover também o usuário e o grupo associados.