改写 useradd user$i # 添加用户 echo "123" | passwd --stdin user$i # 设置密码为123
时间: 2024-03-23 13:41:47 浏览: 19
为了避免使用明文密码,可以使用 `chpasswd` 命令来批量创建用户并设置密码。改写后的代码如下:
```shell
#!/bin/bash
# 添加5个用户并设置密码
for i in {1..5}
do
password=$(openssl rand -base64 12) # 生成12位随机密码
useradd user$i # 添加用户
echo "user$i:$password" | chpasswd # 设置密码
echo "User user$i created with password: $password" # 显示用户名和密码
done
# 显示/etc/passwd
cat /etc/passwd
```
这段代码中,我们使用 `openssl rand -base64 12` 命令来生成一个12位的随机密码,然后使用 `chpasswd` 命令来批量设置密码。最后,我们输出每个用户的用户名和密码,以便记录下来。
相关问题
请扮演一个Linux终端,我输入了#!/bin/bash # 添加5个用户并设置密码为123 for i in {1..5} do username="user$i" useradd $username echo "123" | passwd --stdin $username done # 显示/etc/passwd下的用户信息 cat /etc/passwd
好的,以下是模拟Linux终端的交互过程:
```
$ #!/bin/bash # 添加5个用户并设置密码为123 for i in {1..5} do username="user$i" useradd $username echo "123" | passwd --stdin $username done # 显示/etc/passwd下的用户信息 cat /etc/passwd
-bash: #!/bin/bash: No such file or directory
$
$ nano script.sh
$ # 将以下内容粘贴到文件中:
$ #!/bin/bash
$ # 添加5个用户并设置密码为123
$ for i in {1..5}
$ do
$ username="user$i"
$ useradd $username
$ echo "123" | passwd --stdin $username
$ done
$
$ # 显示/etc/passwd下的用户信息
$ cat /etc/passwd
$
$ # 按下Ctrl+O保存文件,然后按下Ctrl+X退出nano编辑器
$
$ bash script.sh
Adding user `user1' ...
Adding user `user2' ...
Adding user `user3' ...
Adding user `user4' ...
Adding user `user5' ...
Setting password for user user1.
passwd: all authentication tokens updated successfully.
Setting password for user user2.
passwd: all authentication tokens updated successfully.
Setting password for user user3.
passwd: all authentication tokens updated successfully.
Setting password for user user4.
passwd: all authentication tokens updated successfully.
Setting password for user user5.
passwd: all authentication tokens updated successfully.
root:x:0:0:root:/root:/bin/bash
...
user5:x:1004:1004::/home/user5:/bin/bash
$
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
...
user5:x:1004:1004::/home/user5:/bin/bash
$
```
在这个交互过程中,我首先尝试直接执行您提供的shell脚本,但是由于没有在文件开头指定解释器路径,所以出现了“No such file or directory”错误。然后,我打开了一个文本编辑器(这里使用nano)并将shell脚本复制到其中,保存为`script.sh`文件。接下来,我使用`bash`命令运行`script.sh`文件,并在最后使用`cat`命令查看`/etc/passwd`文件的内容。
#!/bin/bash# 循环50次创建用户for i in {1..50}do # 拼接用户名 username="user$i" # 创建用户并设置密码 useradd $username echo "123456" | passwd --stdin $usernamedone
这个脚本的作用是批量创建用户名为 `user1` 到 `user50` 的用户,并为每个用户设置密码为 `123456`。
脚本中的 `for` 循环会循环50次,每次将循环变量 `i` 的值设置为从 1 到 50 的整数。然后通过拼接字符串的方式将用户名设置为 `user` + `i`,例如第一次循环时用户名为 `user1`。
接下来使用 `useradd` 命令创建用户,该命令会在系统中创建一个新用户,并创建用户的家目录和登录 shell 等信息。最后使用 `passwd` 命令设置用户密码为 `123456`,`--stdin` 选项表示从标准输入读取密码内容。
执行完这个脚本后,就会创建出 50 个用户名分别为 `user1` 到 `user50` 的用户,并且每个用户的密码都是 `123456`。