我很难在脚本中将用户添加到组中。
例如,我有一个脚本要求用户回答几个问题,如果答案正确,则应将该用户添加到某个组。
因此,我可能需要一种方法来以某种方式识别哪个用户正在回答问题(有多个用户),并根据他的答案将他/她添加到一个组中。
有人可以帮忙吗?
答案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
则始终将 root 作为用户,因此您需要使用$SUDO_USER
变量
user=$SUDO_USER
echo $user
如果用户使用,su -
然后执行脚本,那么上面的解决方案将不起作用,使用who am i
user=$(who am i | awk '{print $1}')
echo $user