GNU/Linux >> Znalost Linux >  >> Linux

Jak změnit uživatele pro spoustu souborů služby Systemd?

Mám spoustu souborů služeb v /etc/systemd/service/myapp.*.service

Každý z nich má řádek, který vypadá jako…

User=Foo

…a potřebuji změnit všechny tyto soubory .service, aby všechny říkaly…

User=Bar

Jak to mohu udělat efektivně?

Přijatá odpověď:

Kdo říká, že je vůbec potřeba měnit soubory? ☺

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

Získání definice vanilla služby zpět je tímto způsobem poněkud jednodušší.

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

To vše vytvoří jeden soubor to platí pro celou řadu služeb je samozřejmě jen jednoduchým cvičením v používání pevných odkazů.

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

Toto je samozřejmě oficiální způsob, jak dělat takové věci s jednotkami dodanými balíčkem a generovanými runtime, navíc. Předpokládá se, že ne změnit takové soubory jednotek.

Další čtení

  • Lennart Poettering (2013-10-07). systemd.unit . systémové manuálové stránky. freedesktop.org.

Linux
  1. Psaní základních souborů Systemd Service?

  2. Linux – Jak nastavit výchozí afinitu CPU pro všechny démony v Systemd?

  3. Jak nastavit limity zdrojů pro proces s Systemd v CentOS/RHEL 7 a 8

  1. Jak přesměrovat výstup služby systemd do souboru

  2. Jak zastavit službu systemd

  3. Jak mohu změnit všechny soubory patřící jednomu uživateli na jiného uživatele?

  1. Jak spustit službu systemd po přihlášení uživatele a zastavit ji před odhlášením uživatele

  2. Jak omezit paměť pro službu spravovanou systemd

  3. Jak fungují oprávnění k souborům pro uživatele root?