用linxu用for循环创建一个shell脚本,批量添加20个用户,用户名为前缀stu,(添加的用户为stu1、stu2、stu3……),并查看创建的批量用户是否创建成功。
时间: 2024-02-22 11:56:28 浏览: 75
可以使用如下的Shell脚本实现:
```bash
#!/bin/bash
for i in {1..20}
do
username="stu$i"
useradd $username
done
echo "用户创建完成,列表如下:"
cat /etc/passwd | grep stu
```
在终端中运行该脚本即可批量创建 20 个用户。其中,`useradd` 命令用于创建用户,`$username` 使用了 Shell 变量,表示用户名的前缀为 "stu",后面跟着循环变量 `i` 的值。最后,我们使用 `cat` 命令查看 `/etc/passwd` 文件,使用 `grep` 进行过滤,只显示包含 "stu" 的行,即可列出所有创建的用户。
相关问题
写出下述步骤的Shell脚本文件代码:批量删除例3-23所创建的 user01~user10 用户后,再批量添加 stu01~stu10 用户,同样指定所属的用户组为 stu。
在Shell脚本中,你可以使用`userdel`命令删除用户,`useradd`命令添加用户,并设置用户组。以下是一个示例脚本,它执行了你描述的操作:
```bash
#!/bin/bash
# 删除 user01 至 user10 用户
for i in {01..10}
do
if [ -n "$(getent passwd user$i)" ]; then
echo "Deleting user $i..."
userdel -r user$i
else
echo "User $i does not exist."
fi
done
echo "Users deleted."
# 添加 stu01 至 stu10 用户,指定所属用户组为 stu
for i in {01..10}
do
echo "Adding user stu$i..."
useradd -m -g stu stu$i
done
echo "Users added."
exit 0
```
这个脚本首先检查每个用户是否存在,然后逐个删除它们。接着,它创建新用户并将它们加入到名为"stu"的用户组。`-m`选项创建家目录,`-g`指定用户组。
请注意,在实际运行此脚本之前,你需要先确认其权限以及`userdel`和`useradd`命令在你的环境中可以正常使用。此外,如果你的环境需要额外的安全措施,如sudo权限,也需要相应地调整脚本来获取该权限。
编写 shell脚本,创建 999个新用户 stu001-stu999 ,用户组为stu,密码为:用户名@cqcst2023。
在Linux环境下,使用shell脚本来批量创建大量用户并指定特定信息可以相当复杂,因为直接在一条命令中创建这么多用户可能会遇到限制。这里提供一个基础的示例脚本,你可以根据需要调整或分批运行:
```bash
#!/bin/bash
# 创建一个用户函数,用于简化重复工作
create_user() {
user=$1
group=stu
password=${user}@cqcst2023
# 检查是否已达到最大用户数
if [ $((N++)) -ge 1000 ]; then
echo "已经创建了999个用户,不再继续。"
return 1
fi
# 使用adduser命令创建用户,如果用户已经存在则忽略
if ! adduser -s /sbin/nologin -g $group -D -h /dev/null -p "$password" $user; then
echo "User $user already exists."
else
echo "User $user created successfully."
fi
}
# 初始化计数器
N=0
# 开始创建用户
for i in {001..999}; do
create_user stu$i
done
```
注意:
- 这个脚本假设你有适当的权限来创建用户(通常是root权限)。
- `-s /sbin/nologin`设置默认登录shell为无交互模式,防止暴力破解尝试。
- `-D`表示不要设置home目录。
- `-h /dev/null`将用户的home目录设为空。
- `-p "$password"`设置密码,但实际应用中应该考虑安全存储或加密密码。
运行这个脚本之前,确保先保存为.sh文件,并赋予执行权限(`chmod +x scriptname.sh`),然后使用`./scriptname.sh`来执行。
阅读全文