Ich habe eine teilweise vollständige RPM-Spezifikation für einen Dienst erhalten, den wir schreiben. Es reicht nicht aus, die erforderlichen Verzeichnisse zu erstellen, Dateien zu kopieren, Berechtigungen festzulegen usw. Es wird jedoch nicht das erforderliche Systemkonto erstellt, unter dem der Dienst ausgeführt wird. Mir wurde gesagt, dass es am besten ist, wenn sich das RPM darum kümmert, also habe ich hinzugefügt
Requires(pre): /usr/sbin/useradd
%pre
useradd -r -d /path/to/program -s /bin/false myservice
Auf diese Weise wird das Benutzerkonto (und die zugeordnete Gruppe) erfolgreich erstellt. Wenn später versucht wird, den Besitz / die Berechtigungen für die Dateien des Dienstes festzulegen, ist dies ebenfalls erfolgreich.
Mein aktuelles Problem ist: a) Wenn das Benutzerkonto bereits vorhanden ist, schlägt die RPM-Installation fehl, da dies useradd
fehlschlägt (weil der Benutzer bereits vorhanden ist). und b) Ich weiß nicht, wie ich rpm -e myservice
den zugehörigen Benutzer und die zugehörige Gruppe entfernen soll.