GNU/Linux >> Znalost Linux >  >> Linux

Jak zkontrolovat, zda skupina existuje, a přidat, pokud ne, v Linux Shell Script

grep výrok v řešení rups má některé nedostatky:

Např. grepping pro skupinu admin může vrátit true ("skupina existuje"), pokud existuje skupina lpadmin .

Buď opravte grep -dotaz

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

nebo použijte

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

Tento skript vám může pomoci:

   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 funguje, ale pouze na počítači, kde /etc/nsswitch.conf má:

group: files

což znamená, že při určování dostupných skupin se používá pouze /etc/group. Použijte:

getent group <groupname>

pro obecnější řešení kontrola stavu ukončení:0 znamená „existuje“, nenulové znamená „neexistuje“. Chcete-li například zkontrolovat, zda existuje skupina 'postgres', a vytvořit ji, pokud neexistuje (za předpokladu, že shell bash běží jako uživatel schopný vytvářet nové skupiny), spusťte:

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

Linux
  1. Jak přidat nebo odebrat uživatele ze skupiny v Linuxu

  2. Jak definovat a používat funkce v Linux Shell Script

  3. Přidat uživatele do skupiny v Linuxu, jak na to (s příklady)

  1. Jak porovnávat čísla a řetězce ve skriptu Linux Shell

  2. Jak zkontrolovat verzi OS a Linuxu

  3. Jak přidat uživatele do skupiny v Linuxu

  1. Jak přidat uživatele do skupiny v Linuxu

  2. Jak přidat uživatele do skupiny v Linuxu

  3. Jak přidat uživatele do Linuxu pomocí shell skriptu