GNU/Linux >> Linux の 問題 >  >> Linux

Linux シェル スクリプトでグループが存在するかどうかを確認し、存在しない場合は追加する方法

grep rups のソリューションのステートメントにはいくつかの欠陥があります:

例えば。 grepping グループ admin の場合 true を返す場合があります (「グループあり」) グループ lpadmin がある場合 .

grep を修正するか -クエリ

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

または使用

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

このスクリプトが役立つ場合があります:

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

/etc/group の grep は機能しますが、/etc/nsswitch.conf が次のものを持つマシンでのみ:

group: files

つまり、利用可能なグループを決定する際に /etc/group のみが参照されます。用途:

getent group <groupname>

より一般的な解決策として、終了ステータスを確認します。0 は「存在する」ことを意味し、ゼロ以外は「存在しない」ことを意味します。たとえば、グループ「postgres」が存在するかどうかを確認し、存在しない場合は作成します (bash シェルを想定し、新しいグループを作成できるユーザーとして実行します)。

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

Linux
  1. OSとLinuxのバージョンを確認する方法

  2. Linuxでユーザーをグループに追加する方法

  3. シェル スクリプトを使用して Linux にユーザーを追加する方法

  1. Linuxでグループにユーザーを追加またはグループから削除する方法

  2. Linuxシェルスクリプトで関数を定義して使用する方法

  3. Linuxシェルスクリプトで数値と文字列を比較する方法

  1. Linuxでユーザーをグループに追加する方法

  2. Linuxでユーザーをグループに追加する方法

  3. Linuxのグループにユーザーを追加する方法(例を含む)