跳到主要内容

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

参考答案:

在Shell中,你可以使用groupadd命令来添加一个新组,然后使用useradd命令结合循环来添加用户,并将这些用户添加到新组中。以下是一个简单的bash脚本示例,它执行了你所描述的任务:

#!/bin/bash

# 添加新组
groupadd class1

# 循环添加用户
for i in {01..30}
do
    # 创建用户名stdxx
    username="std$i"
    
    # 添加用户并设置初始密码(可选)
    # 注意:这里设置的密码是"password",你可以根据需要更改
    useradd -m -s /bin/bash -g class1 "$username"
    echo "$username:password" | chpasswd
    
    # 验证用户是否添加成功
    id "$username"
done

注意

  1. 上述脚本假设你有足够的权限来添加用户和组。通常,这需要root权限。
  2. 脚本中的useradd命令使用了-m选项来创建用户的主目录,-s /bin/bash来设置默认的shell为bash,-g class1来将用户添加到class1组。
  3. 脚本还使用chpasswd命令来设置每个用户的初始密码。在这里,我为所有用户都设置了相同的密码“password”,但在实际应用中,你可能希望为每个用户设置不同的密码,或者根本不设置密码(取决于你的安全策略)。
  4. 脚本中的id命令用于验证用户是否已成功添加。你可以根据需要删除或修改这部分。

要运行此脚本,你需要将其保存到一个文件中(例如add_users.sh),然后使其可执行:

chmod +x add_users.sh

之后,以root用户身份运行它:

sudo ./add_users.sh