GNU/Linux >> Linux Esercitazione >  >> Linux

Come cambiare utente per un mucchio di file di servizio Systemd?

Ho un sacco di file di servizio in /etc/systemd/service/myapp.*.service

Ognuno ha una linea che assomiglia a...

User=Foo

... e devo cambiare tutti questi file .service in modo che tutti dicano...

User=Bar

Come faccio a farlo in modo efficiente?

Risposta accettata:

Chi dice che devi cambiare i file? ☺

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

Recuperare la definizione del servizio vanilla è un po' più semplice in questo modo.

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

Rendendoli tutti un unico file che si applica a tutta una serie di servizi è ovviamente solo un semplice esercizio nell'uso dei collegamenti reali.

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

Questo è ovviamente il modo ufficiale per fare questo genere di cose con le unità fornite dal pacchetto e generate dal runtime, inoltre. Si suppone che non per modificare tali file di unità.

Ulteriori letture

  • Lennart Poettering (07-10-2013). systemd.unit . pagine di manuale di sistema. freedesktop.org.

Linux
  1. Come creare un servizio Systemd in Linux

  2. Come scrivere uno script di avvio per Systemd?

  3. Scrivere file di servizio Systemd di base?

  4. Come reindirizzare l'output del servizio systemd su un file

  5. Come interrompere il servizio systemd

Come modificare i permessi per file e directory

Come modificare la password utente in Linux

Come modificare o impostare la password utente in Linux

Come cambiare utente su Linux

Come funzionano i permessi sui file per l'utente root?

Come inviare un'e-mail se un servizio systemd viene riavviato?