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.
quelle
Antworten:
Ich habe das tatsächlich unabhängig gelöst, indem ich mir andere RPM-Spezifikationen angesehen habe, die ähnliche Dinge taten. Wenn Sie nur (bedingt) einen Benutzer hinzufügen möchten, verwenden Sie den Link von Ignacio. Ich war das:
Dies stellt sicher, dass das RPM "nach sich selbst bereinigt", aber dennoch die Möglichkeit zur Installation bietet, selbst wenn das Konto bereits vorhanden ist.
quelle
Eine der beiden vorherigen Antworten ist produktionsbereit, da diese Methoden den Benutzer löschen, wenn das Paket aktualisiert wird. Yum installiert das neue Paket und entfernt dann das alte Paket. Dadurch bleiben Sie ohne Benutzer. Nicht cool!
Verwenden Sie stattdessen diese Methode:
quelle
Die Antwort von Coderer ist gut, aber der zweite Vorbefehl gibt mir auf Centos 7 einen Fehler. Die Gruppe muss angegeben werden.
Ich habe auch die Umleitung zu / dev / null hinzugefügt, um unerwünschte Echos zu ignorieren.
quelle