批量创建和删除用户及用户组

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个项目中,你将学习如何在课堂服务器环境中创建和管理教师与学生的用户账户。你将使用一个名为 userctr.sh 的 bash 脚本自动化添加和删除用户账户的过程,手动完成这项任务可能会很繁琐。

👀 预览

## 添加 1 个教师用户和 6 个学生用户(stu1 至 stu6)
$ sh userctr.sh add teacher stu 6
teacher:617533
stu1:345893
stu2:183263
stu3:404525
stu4:571165
stu5:251940
stu6:716130

## 删除 1 个教师用户和 6 个学生用户(stu1 至 stu6)
$ sh userctr.sh del teacher stu 6

🎯 任务

在这个项目中,你将学习:

  • 如何为项目设置必要的环境
  • 如何实现添加和删除用户及用户组的功能
  • 如何测试 userctr.sh 脚本以确保其按预期工作

🏆 成果

完成这个项目后,你将能够:

  • 理解自动化用户管理任务的重要性
  • 使用 bash 脚本为教师和学生创建和管理用户账户
  • 确保使用适当的设置创建用户账户,如默认 shell 和 sudo 权限
  • 在课堂服务器环境中高效地添加和删除用户账户

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/VersionControlandTextEditorsGroup(["Version Control and Text Editors"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/UserandGroupManagementGroup -.-> linux/useradd("User Adding") linux/UserandGroupManagementGroup -.-> linux/userdel("User Removing") linux/UserandGroupManagementGroup -.-> linux/usermod("User Modifying") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/VersionControlandTextEditorsGroup -.-> linux/vim("Text Editing") subgraph Lab Skills linux/touch -.-> lab-301459{{"批量创建和删除用户及用户组"}} linux/cd -.-> lab-301459{{"批量创建和删除用户及用户组"}} linux/useradd -.-> lab-301459{{"批量创建和删除用户及用户组"}} linux/userdel -.-> lab-301459{{"批量创建和删除用户及用户组"}} linux/usermod -.-> lab-301459{{"批量创建和删除用户及用户组"}} linux/sudo -.-> lab-301459{{"批量创建和删除用户及用户组"}} linux/vim -.-> lab-301459{{"批量创建和删除用户及用户组"}} end

准备环境

在这一步中,你将为项目设置必要的环境。

  1. 打开一个终端并导航到 /home/labex/project 目录。

  2. 使用以下命令在 /home/labex/project 目录中创建一个名为 userctr.sh 的新文件:

    touch userctr.sh
  3. 在文本编辑器中打开 userctr.sh 文件,并在文件开头添加以下 shebang 行:

    #!/bin/zsh

    此行指定应使用 zsh shell 执行该脚本。

实现用户和用户组管理功能

在这一步中,你将实现添加和删除用户及用户组的功能。

  1. 将以下代码添加到 userctr.sh 文件中:

    ## 此脚本用于管理教师和学生的用户账户。
    
    ## 检查参数数量是否正确
    
    ## 检查学生数量参数是否为正整数且不超过 10
    
    ## 检查学生姓名前缀是否仅包含小写字母
    
    ## 生成随机 6 位密码的函数

    这段代码设置了脚本的基本结构,包括参数验证和生成随机密码的函数。

  2. 将以下代码添加到 userctr.sh 文件中以处理“add”操作:

    ## 添加用户
    ## 添加教师用户
    
    ## 添加学生用户

    这段代码添加一个教师用户和指定数量的学生用户。如果用户已存在,将显示用户密码为六个星号。

  3. 将以下代码添加到 userctr.sh 文件中以处理“del”操作:

    ## 删除用户
    ## 删除教师用户
    
    ## 删除学生用户

    这段代码删除教师用户和指定数量的学生用户。

  4. 保存 userctr.sh 文件

测试脚本

在这一步中,你将测试 userctr.sh 脚本,以确保它按预期工作。

  1. 打开一个终端并导航到 /home/labex/project 目录。

  2. 通过运行以下命令测试“add”操作:

    sh userctr.sh add teacher stu 6

    这应该创建一个教师用户和六个学生用户,并显示他们随机生成的密码。

    teacher:617533
    stu1:345893
    stu2:183263
    stu3:404525
    stu4:571165
    stu5:251940
    stu6:716130
  3. 通过运行以下命令测试“del”操作:

    sh userctr.sh del teacher stu 6

    这应该删除教师用户和六个学生用户。

恭喜!你已完成该项目。现在你可以使用 userctr.sh 脚本在你的课堂服务器中管理教师和学生的用户账户。

✨ 查看解决方案并练习

总结

恭喜!你已完成这个项目。你可以在 LabEx 中练习更多实验来提升你的技能。