题目要求:
请在centOS Linux中编写一个C语言程序实现如下功能:
- 同时创建100个用户,用户的账户名称为:Student01 Student02 … Student100;
- 设置每个用户的初始密码为:stud123456
- 请用gcc编译C的源代码,生成可执行程序。
- 运行可执行程序,为Linux系统添加100个初始用。
代码展示:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>#define USER_PREFIX "Student"
#define PASSWORD "stud123456"
#define USER_COUNT 100int main() {char username[20];char command[200];int i;uid_t uid = getuid();// 检查是否为root用户运行if (uid != 0) {fprintf(stderr, "错误: 此程序必须以root用户身份运行\n");return 1;}printf("开始创建%d个用户...\n", USER_COUNT);for (i = 1; i <= USER_COUNT; i++) {// 格式化用户名 (Student01, Student02, ..., Student100)snprintf(username, sizeof(username), "%s%02d", USER_PREFIX, i);// 创建用户命令snprintf(command, sizeof(command), "useradd -m %s", username);// 执行创建用户命令if (system(command) != 0) {fprintf(stderr, "创建用户 %s 失败\n", username);continue;}// 设置密码 (使用chpasswd)snprintf(command, sizeof(command), "echo '%s:%s' | chpasswd", username, PASSWORD);// 执行设置密码命令if (system(command) != 0) {fprintf(stderr, "为用户 %s 设置密码失败\n", username);} else {printf("成功创建用户: %s\n", username);}}printf("用户创建完成。共创建了%d个用户。\n", USER_COUNT);return 0;
}