GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie ändere ich den Benutzer für eine Reihe von Systemd-Dienstdateien?

Ich habe eine Reihe von Dienstdateien in /etc/systemd/service/myapp.*.service

Jeder hat eine Zeile, die aussieht wie …

User=Foo

… und ich muss all diese .service-Dateien ändern, damit sie alle sagen …

User=Bar

Wie mache ich das effizient?

Akzeptierte Antwort:

Wer sagt, dass Sie die Dateien überhaupt ändern müssen? ☺

find /etc/systemd/service/ -maxdepth 1 -name 'myapp.*.service' |
while read -r i
do
    printf '[Service]\nUser=%s\n' 'Bar' > ${i}.d/change-user.conf
done

Auf diese Weise ist es etwas einfacher, die Vanilla-Service-Definition zurückzubekommen.

rm -- /etc/systemd/service/myapp.*.service.d/change-user.conf

All dies zu einer einzigen Datei machen das für eine ganze Reihe von Diensten gilt, ist natürlich nur eine einfache Übung in der Verwendung von Hardlinks.

install -d /etc/systemd/temp
printf '[Service]\nUser=%s\n' 'Bar' > /etc/systemd/temp/change-user.conf
find /etc/systemd/service/ -maxdepth 1 -name 'myapp.*.service' |
while read -r i
do
    ln /etc/systemd/temp/change-user.conf ${i}.d/change-user.conf
done

Dies ist natürlich der offizielle Weg, um so etwas mit von Paketen bereitgestellten und zur Laufzeit generierten Units zu tun. Das sollten Sie nicht um solche Unit-Dateien zu ändern.

Weiterführende Literatur

  • Lennart Pöttering (2013-10-07). systemd.unit . systemd Handbuchseiten. freedesktop.org.

Linux
  1. Wie schreibe ich ein Startskript für Systemd?

  2. Grundlegende Systemd-Dienstdateien schreiben?

  3. Erfahren Sie, wie Sie Berechtigungen für Dateien und Ordner ändern

  4. So legen Sie Ressourcenlimits für einen Prozess mit Systemd in CentOS/RHEL 7 und 8 fest

  5. So legen Sie ulimit-Werte für einen systemd-Dienst fest

So ändern Sie Berechtigungen für Dateien und Verzeichnisse

So ändern Sie das Benutzerkennwort in Linux

So ändern oder setzen Sie das Benutzerkennwort in Linux

So ändern Sie den Benutzer unter Linux

Wie funktionieren Dateiberechtigungen für den Root-Benutzer?

Wie sende ich eine E-Mail, wenn ein systemd-Dienst neu gestartet wird?