GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo cambiar de usuario para un montón de archivos de servicio de Systemd?

Tengo un montón de archivos de servicio en /etc/systemd/service/myapp.*.service

Cada uno tiene una línea que parece...

User=Foo

…y necesito cambiar todos estos archivos .service para que todos digan…

User=Bar

¿Cómo hago esto de manera eficiente?

Respuesta aceptada:

¿Quién dice que necesitas cambiar los archivos? ☺

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

Recuperar la definición de servicio estándar es un poco más fácil de esta manera.

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

Haciendo todos estos un solo archivo que se aplica a un montón de servicios es, por supuesto, solo un simple ejercicio en el uso de enlaces físicos.

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

Esta es, por supuesto, la forma oficial de hacer este tipo de cosas con unidades proporcionadas por paquetes y generadas en tiempo de ejecución, además. Se supone que no para cambiar dichos archivos de unidad.

Lecturas adicionales

  • Lennart Poettering (2013-10-07). systemd.unit . páginas del manual systemd. freedesktop.org.

Linux
  1. Cómo cambiar un nombre de usuario en Linux

  2. Cómo crear un servicio Systemd en Linux

  3. ¿Cómo escribir un script de inicio para Systemd?

  4. Cómo establecer valores ulimit para un servicio systemd

  5. Cómo iniciar un servicio systemd después del inicio de sesión del usuario y detenerlo antes de que el usuario cierre la sesión

Cómo cambiar los permisos de archivos y directorios

Cómo cambiar la contraseña de usuario en Linux

Cómo cambiar o establecer la contraseña de usuario en Linux

Cómo cambiar de usuario en Linux

¿Cómo funcionan los permisos de archivo para el usuario root?

¿Cómo enviar un correo electrónico si se reinicia un servicio systemd?