GNU/Linux >> Tutoriels Linux >  >> Linux

Comment vérifier si un groupe existe et ajouter s'il n'existe pas dans Linux Shell Script

Le grep déclaration dans la solution de rups a quelques défauts :

Par exemple. grepping pour un groupe admin peut retourner true ("le groupe existe") lorsqu'il y a un groupe lpadmin .

Soit corriger le grep -requête

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

ou utilisez

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

Ce script peut vous aider :

   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 fonctionne, mais uniquement sur une machine où /etc/nsswitch.conf a :

group: files

ce qui signifie que seul /etc/group est consulté lors de la détermination des groupes disponibles. Utiliser :

getent group <groupname>

pour une solution plus générique, vérifier l'état de sortie :0 signifie "existe", différent de zéro signifie "n'existe pas". Par exemple, pour vérifier si le groupe 'postgres' existe et le créer si ce n'est pas le cas (en supposant que bash shell s'exécute en tant qu'utilisateur capable de créer de nouveaux groupes), exécutez :

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

Linux
  1. Comment ajouter ou supprimer un utilisateur d'un groupe sous Linux

  2. Comment définir et utiliser des fonctions dans Linux Shell Script

  3. Comment comparer des nombres et des chaînes dans le script shell Linux

  4. Ajouter un utilisateur au groupe sous Linux, comment le faire (avec exemples)

  5. Comment ajouter des utilisateurs à Linux via un script shell

Comment configurer ZSH et Oh-my-zsh sous Linux

Comment ajouter un utilisateur à un groupe sous Linux

Comment stocker une commande Linux en tant que variable dans un script shell

Comment installer et utiliser Nu Shell sous Linux

Comment ajouter un utilisateur à un groupe sous Linux

Comment ajouter un utilisateur à un groupe Linux