GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo verificar si existe un grupo y agregarlo si no existe en Linux Shell Script

El grep declaración en la solución de rups tiene algunos defectos:

P.ej. grepping para un grupo admin puede devolver true ("grupo existe") cuando hay un grupo lpadmin .

Arregle el grep -consulta

grep -q -E "^admin:" /etc/group

o usar

if [ $(getent group admin) ]; then
  echo "group exists."
else
  echo "group does not exist."
fi

Este script puede ayudarte:

   read -p "enter group name: " group
   if grep -q $group /etc/group
    then
         echo "group exists"
    else
         echo "group does not exist"
    fi

Grepping /etc/group funciona, pero solo en una máquina donde /etc/nsswitch.conf tiene:

group: files

lo que significa que solo se consulta /etc/group al determinar los grupos disponibles. Usar:

getent group <groupname>

para una solución más genérica, verificar el estado de salida:0 significa "existe", distinto de cero significa "no existe". Por ejemplo, para verificar si existe el grupo 'postgres' y crearlo si no existe (suponiendo que bash shell, ejecutándose como un usuario capaz de crear nuevos grupos), ejecute:

/usr/bin/getent group postgres 2>&1 > /dev/null || /usr/sbin/groupadd postgres

Linux
  1. Cómo agregar o eliminar un usuario de un grupo en Linux

  2. Cómo definir y usar funciones en Linux Shell Script

  3. Cómo comparar números y cadenas en Linux Shell Script

  4. Agregar usuario a grupo en Linux, cómo hacerlo (con ejemplos)

  5. Cómo verificar la versión del sistema operativo y Linux

Cómo configurar ZSH y Oh-my-zsh en Linux

Cómo agregar un usuario a un grupo en Linux

Cómo almacenar un comando de Linux como una variable en el script de Shell

Cómo instalar y usar Nu Shell en Linux

Cómo agregar un usuario a un grupo en Linux

Cómo agregar un usuario a un grupo de Linux