J'ai reçu une spécification RPM partiellement complète pour un service que nous écrivons. Il va jusqu'à créer les répertoires requis, copier des fichiers, définir des autorisations, etc., mais il ne crée pas le compte système requis sous lequel le service s'exécutera. On m'a dit qu'il était préférable que le RPM s'en occupe, alors j'ai ajouté
Requires(pre): /usr/sbin/useradd
%pre
useradd -r -d /path/to/program -s /bin/false myservice
Cela réussit à créer le compte d'utilisateur (et le groupe associé), donc plus tard lorsqu'il essaie de définir la propriété / les autorisations sur les fichiers du service, cela réussit également.
Mon problème actuel est: a) si le compte d'utilisateur existe déjà, l'installation de RPM échoue car useradd
échoue (car l'utilisateur existe déjà); et b) Je ne sais pas comment rpm -e myservice
supprimer également l'utilisateur et le groupe associés.