스크립트의 그룹에 사용자를 추가하는 데 문제가 있습니다.
예를 들어, 사용자가 몇 가지 질문에 대답해야 하고, 대답이 정확하면 사용자를 특정 그룹에 추가해야 하는 스크립트가 있습니다.
따라서 어떤 사용자가 질문에 답변하고 있는지(여러 사용자가 있음) 식별하고 해당 사용자의 답변을 기반으로 해당 사용자를 그룹에 추가하는 방법이 필요할 수 있습니다.
누구든지 도와줄 수 있나요?
답변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
스크립트에 한 줄을 추가하여 누가 실행하고 있는지 확인할 수 있습니다.
user=$(whoami)
echo $user
sudo로 스크립트를 실행해야 하는 경우 루트는 항상 사용자이므로 변수를 whoami
사용해야 합니다.$SUDO_USER
user=$SUDO_USER
echo $user
사용자가 스크립트를 사용한 다음 실행하면 su -
위의 솔루션이 작동하지 않습니다.who am i
user=$(who am i | awk '{print $1}')
echo $user