GNU/Linux >> Linux Esercitazione >  >> Linux

Come verificare se esiste un gruppo e aggiungerlo in caso contrario in Linux Shell Script

Lo grep affermazione nella soluzione di rups ha alcuni difetti:

Per esempio. grepping per un gruppo admin potrebbe restituire true ("il gruppo esiste") quando c'è un gruppo lpadmin .

Correggi il grep -query

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

o usa

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

Questo script può aiutarti:

   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 funziona, ma solo su una macchina in cui /etc/nsswitch.conf ha:

group: files

ciò significa che solo /etc/group viene consultato quando si determinano i gruppi disponibili. Usa:

getent group <groupname>

per una soluzione più generica, controllare lo stato di uscita:0 significa "esiste", diverso da zero significa "non esiste". Ad esempio, per verificare se esiste il gruppo 'postgres' e crearlo in caso contrario (presupponendo che la shell bash funzioni come utente in grado di creare nuovi gruppi) eseguire:

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

Linux
  1. Come aggiungere o rimuovere un utente da un gruppo in Linux

  2. Come definire e utilizzare le funzioni in Linux Shell Script

  3. Come confrontare numeri e stringhe nello script della shell di Linux

  4. Come controllare la versione del sistema operativo e di Linux

  5. Come aggiungere un utente a un gruppo in Linux

Come configurare ZSH e Oh-my-zsh su Linux

Come aggiungere un utente al gruppo in Linux

Come memorizzare un comando Linux come variabile nello script della shell

Come installare e utilizzare Nu Shell su Linux

Come aggiungere un utente al gruppo su Linux

Come aggiungere un utente a un gruppo Linux