1、编写shell程序,功能上实现自动生成30个用户账号的用户信息并写入文件adduser.txt, 账号名为stu1至stu30,用户号UID从101到130,假定GID是50。
时间: 2023-03-29 18:02:35 浏览: 80
好的,这个问题我可以回答。以下是一个可能的shell程序:
```
#!/bin/bash
for i in {1..30}
do
username="stu$i"
uid=$((100 + i))
echo "$username:x:$uid:50::/home/$username:/bin/bash" >> adduser.txt
useradd -u $uid -g 50 -d /home/$username -s /bin/bash $username
done
```
这个程序使用了一个for循环,循环30次,每次生成一个用户名和对应的UID,并将用户信息写入adduser.txt文件中。同时,使用useradd命令创建用户并指定UID和GID。
相关问题
编写一个shell程序adduser,添加一个新组class,然后添加属于这个组的30个用户,用户名的形式为yhxx,并设置密码为yhxx。其中xx从01到30(前九个是01-09,后10-30)
好的,我可以为您提供这个shell程序的代码。请注意,为了确保安全性,建议您在使用前先测试该程序,以确保其正常工作并无任何风险。
```bash
#!/bin/bash
# 添加一个新组class
sudo groupadd class
# 添加属于这个组的30个用户
for i in {1..30}
do
# 格式化用户名
if [ $i -lt 10 ]
then
username=yh0$i
else
username=yh$i
fi
# 创建用户并设置密码为yhxx
sudo useradd -m -p $(openssl passwd -1 yhxx) -s /bin/bash -g class $username
done
```
请将上述代码保存为adduser.sh文件,并在终端中运行以下命令以执行该程序:
```bash
sudo chmod +x adduser.sh
./adduser.sh
```
执行完毕后,您应该会看到30个新用户被添加到了您的系统中,并属于组class。
新建一个用户,用户名为自己名字全拼,如“zhangsan”,并显示/etc/passwd文件中新增用户的信息。
可以使用以下命令新建一个用户名为自己名字全拼的用户(例如用户名为zhangsan):
```
sudo adduser zhangsan
```
其中,`adduser`命令用于添加新用户,`sudo`命令用于获取管理员权限。
然后,可以使用以下命令显示/etc/passwd文件中新增用户的信息:
```
grep zhangsan /etc/passwd
```
其中,`grep`命令用于查找指定字符串,`/etc/passwd`表示要查找的文件。执行完该命令后,会显示/etc/passwd文件中新增用户的信息,包括用户名、用户ID、主目录、默认shell等信息。