bashスクリプトを使用してユーザーグループを定義する方法は? [閉鎖]

bashスクリプトを使用してユーザーグループを定義する方法は? [閉鎖]

スクリプトのグループにユーザーを追加する際に問題があります。

たとえば、ユーザーがいくつかの質問に答える必要があり、答えが正しい場合は、ユーザーを特定のグループに追加する必要があるスクリプトがあります。

したがって、どのユーザーが質問に回答しているか(複数のユーザーがいる場合)を識別し、そのユーザーの回答に基づいてそのユーザーをグループに追加する方法が必要になる場合があります。

誰でも助けることができますか?

答え1

簡単なスクリプトも作成しました。
次のスクリプトは、システムに新しいユーザーを作成します。
参考に活用していただければ本当にいいです。
グループ名をVALIDGROUPS変数に事前設定し、
実行時に選択します。

 1  #!/bin/bash
 2
 3  VALIDGROUPS="GROUP1, GROUP2, GROUP3"
 4
 5  printf "Add your account on this system\n\n"
 6  printf "Enter your name here, No space allowed for your user name : "
 7  read USERNAME
 8
 9  printf "Valid user groups are $VALIDGROUPS Choose select one: "
10  read USERGROUP
11
12  grep $USERGROUP /etc/group 2>&1>/dev/null
13  if [ $? != 0 ]
14  then
15      printf "Group Name you entered $USERGROUP is not valid\n"
16      printf "Creating Abort!\n"
17      exit 1
18  else
19      useradd -g $USERGROUP -d /home/$USERNAME -s /bin/bash -m $USERNAME
20      passwd $USERNAME
21  fi
22
23  id $USERNAME
24
25  printf "done!\n"
26
27  exit 0

答え2

スクリプトに1行を追加して、誰が実行しているかを確認できます。

user=$(whoami)
echo $user

sudoでスクリプトを実行する必要がある場合、rootは常にユーザーであるため、変数をwhoami使用する必要があります。$SUDO_USER

user=$SUDO_USER
echo $user

ユーザーがスクリプトを使用して実行すると、su -上記の解決策は機能しません。who am i

user=$(who am i | awk '{print $1}')
echo $user

関連情報