Shell 添加一个新组为class1,添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01 到30 ?
参考回答
可以编写一个Shell脚本来实现以下操作:
- 创建一个名为
class1的新组。 - 创建30个用户,用户名的形式为
std01到std30,并将这些用户添加到class1组中。
脚本:
#!/bin/bash
# 创建新组
groupadd class1
# 创建30个用户,并将它们添加到class1组
for i in (seq -f "%02g" 1 30); do
username="stdi"
useradd -m -g class1 username # -m 选项创建用户的家目录,-g 选项指定用户组
echo "Userusername created and added to class1"
done
详细讲解与拓展
- 创建组
class1:groupadd class1:创建一个名为class1的新组。如果该组已经存在,这条命令会返回错误。
- 创建30个用户:
for i in $(seq -f "%02g" 1 30):seq命令生成从1到30的数字,并通过-f "%02g"格式化为两位数(如01,02, …,30)。这个循环会执行30次,生成30个用户名。
username="std$i":根据循环的变量i,生成每个用户的用户名,如std01、std02、……、std30。-
useradd -m -g class1 $username:创建用户stdXX,并将其添加到class1组。-m选项会自动创建该用户的家目录(例如/home/std01),-g class1指定用户的主组为class1。
- 输出信息:
echo "User $username created and added to class1":每次创建用户后,输出提示信息,告知用户已经创建并添加到class1组。
执行脚本的步骤
-
将脚本保存到文件,例如
create_users.sh:nano create_users.sh - 给脚本文件添加执行权限:
chmod +x create_users.sh - 以管理员身份(或具有足够权限的用户)执行脚本:
sudo ./create_users.sh
总结
这个脚本会在系统中创建一个新组 class1,并创建30个用户(用户名为 std01 到 std30),同时将这些用户添加到 class1 组中。