Shell 添加一个新组为class1,添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01 到30 ?

参考回答

可以编写一个Shell脚本来实现以下操作:

  1. 创建一个名为 class1 的新组。
  2. 创建30个用户,用户名的形式为 std01std30,并将这些用户添加到 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

详细讲解与拓展

  1. 创建组 class1
    • groupadd class1:创建一个名为 class1 的新组。如果该组已经存在,这条命令会返回错误。
  2. 创建30个用户:
    • for i in $(seq -f "%02g" 1 30)seq 命令生成从1到30的数字,并通过 -f "%02g" 格式化为两位数(如 01, 02, …, 30)。这个循环会执行30次,生成30个用户名。
  • username="std$i":根据循环的变量 i,生成每个用户的用户名,如 std01std02、……、std30

  • useradd -m -g class1 $username:创建用户 stdXX,并将其添加到 class1 组。-m 选项会自动创建该用户的家目录(例如 /home/std01),-g class1 指定用户的主组为 class1

  1. 输出信息:
    • echo "User $username created and added to class1":每次创建用户后,输出提示信息,告知用户已经创建并添加到 class1 组。

执行脚本的步骤

  1. 将脚本保存到文件,例如 create_users.sh

    nano create_users.sh
    
  2. 给脚本文件添加执行权限:
    chmod +x create_users.sh
    
  3. 以管理员身份(或具有足够权限的用户)执行脚本:
    sudo ./create_users.sh
    

总结

这个脚本会在系统中创建一个新组 class1,并创建30个用户(用户名为 std01std30),同时将这些用户添加到 class1 组中。

发表评论

后才能评论