題目要求:
請在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;
}