スクリプトのグループにユーザーを追加する際に問題があります。
たとえば、ユーザーがいくつかの質問に答える必要があり、答えが正しい場合は、ユーザーを特定のグループに追加する必要があるスクリプトがあります。
したがって、どのユーザーが質問に回答しているか(複数のユーザーがいる場合)を識別し、そのユーザーの回答に基づいてそのユーザーをグループに追加する方法が必要になる場合があります。
誰でも助けることができますか?
答え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