用shell编程用户和组,某公司有50个员工,在一个部门工作,每个人工作内容不同。
时间: 2023-05-15 16:03:06 浏览: 106
为了方便管理,我们需要在系统中创建一个部门对应的组,将这50个员工添加到这个组中。这样,我们就可以对这个组中的所有用户进行一些操作,而不需要一个一个地操作每个用户。
首先,我们可以使用以下命令创建部门对应的组:
```
sudo groupadd department
```
接着,我们可以使用以下命令一次性地创建并添加50个用户到这个组中:
```
for i in {1..50}; do sudo useradd -m -G department user$i; done
```
其中,user1 到 user50 是我们创建的50个用户的用户名。
通过上面的命令,我们为每个用户创建了一个家目录(-m 选项),并将他们分别添加到了 department 组中(-G 选项)。
这样,我们就可以使用以下命令查看这个组中的所有用户:
```
getent group department
```
而对于部门内的每个员工,他们的工作内容不同,我们可以在其家目录下创建一个工作目录,用于存放与工作相关的文件:
```
for i in {1..50}; do sudo mkdir /home/user$i/work; done
```
这样,每个员工就可以在自己的 /home/userX/work 目录下存放工作相关的文件了。当然,在实际情况中,我们可能需要更具体的目录结构和访问权限,这就需要根据具体情况进行设置了。
相关问题
用 shell编程创建用户和组,某公司有20个员工,在1个部门工作,每个人工作内容不同。需要在服务器上为每个人创建不同的账号,把20用户放在一个组中,每个用户都有自己的工作目录
可以使用以下的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个用户,并将它们添加到一个组中,每个用户都有自己的工作目录。
不使用shell脚本实现,项目背景:某公司有 60 个员工,分别在 5 个部门分别为:财务部,工程部,业务部,管理部,行政部。60人平均分配在每个部门中,每个人的工作内容不同,需要在服务器上为每个人创建不同的账号,把相同部门的用户放在一个组中, 每个用户都有自己的工作目录,并且需要根据工作性质对每个部门和每个用户在服务器上 的可用空间进行限制
如果不使用 shell 脚本,也可以通过以下步骤实现:
1. 创建部门组:使用 `groupadd` 命令创建每个部门的组。例如:
```
groupadd finance
groupadd engineering
groupadd business
groupadd management
groupadd administration
```
2. 创建用户账号和工作目录:使用 `useradd` 命令为每个员工创建账号,并分配对应的工作目录。例如:
```
useradd -d /home/finance/user1 -m user1
useradd -d /home/finance/user2 -m user2
# 依此类推,为每个员工创建账号和工作目录
```
其中,`-d` 参数指定用户的工作目录,`-m` 参数表示创建用户时同时创建该目录。
3. 将用户添加到对应的组中:使用 `usermod` 命令将每个用户添加到其所在的部门组中。例如:
```
usermod -aG finance user1
usermod -aG finance user2
# 依此类推,将每个员工添加到对应的部门组中
```
其中,`-aG` 参数表示将用户添加到指定的组中。
4. 对每个组设置可用空间限制:使用 `setquota` 命令对每个部门组设置可用空间限制。例如:
```
setquota -g finance 100M 200M 0 0 /
setquota -g engineering 150M 300M 0 0 /
setquota -g business 80M 160M 0 0 /
setquota -g management 120M 240M 0 0 /
setquota -g administration 90M 180M 0 0 /
```
其中,`-g` 参数表示对组设置限制,第一个参数表示磁盘空间限制,第二个参数表示磁盘空间软限制(超出限制时会有警告但不会阻止用户写入),最后的 `/` 表示对整个文件系统设置限制。
需要注意的是,`setquota` 命令需要在文件系统支持 quota 的情况下才能使用。
通过以上步骤,就可以为每个员工创建账号和工作目录,并将其分配到对应的部门组中,并对每个部门和每个用户设置可用空间限制。