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

스크립트에 한 줄을 추가하여 누가 실행하고 있는지 확인할 수 있습니다.

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

관련 정보