用 shell编程创建用户和组,某公司有20个员工,在1个部门工作,每个人工作内容不同。需要在服务器上为每个人创建不同的账号,把20用户放在一个组中,每个用户都有自己的工作目录
时间: 2024-02-24 10:55:46 浏览: 130
shell 编程
可以使用以下的shell脚本来实现:
```
#!/bin/bash
# 创建组
groupadd mygroup
# 循环创建用户
for i in {1..20}
do
# 创建用户名,例如user1、user2等
username="user$i"
# 创建密码
password=$(openssl rand -base64 12)
# 创建用户,并设置密码
useradd -m -p $password $username
# 将用户添加到组中
usermod -a -G mygroup $username
# 创建工作目录
mkdir /home/$username/work
# 设置工作目录的权限
chown $username:mygroup /home/$username/work
chmod 770 /home/$username/work
done
```
解释一下以上代码:
- `groupadd mygroup`:创建名为`mygroup`的组。
- `for i in {1..20}`:循环20次,创建20个用户。
- `username="user$i"`:创建用户名,例如`user1`、`user2`等。
- `password=$(openssl rand -base64 12)`:使用openssl生成12位随机密码。
- `useradd -m -p $password $username`:创建用户,并设置密码。
- `usermod -a -G mygroup $username`:将用户添加到`mygroup`组中。
- `mkdir /home/$username/work`:创建工作目录。
- `chown $username:mygroup /home/$username/work`:将工作目录的所属用户设置为当前用户,所属组设置为`mygroup`。
- `chmod 770 /home/$username/work`:设置工作目录的权限为`rwxrwx---`,即用户和组有读写执行权限,其他用户没有任何权限。
执行以上脚本后,就可以在服务器上创建20个用户,并将它们添加到一个组中,每个用户都有自己的工作目录。
阅读全文