在1中定义的逻辑卷是/dev/sdd2、/dev/sdd3、/dev/sdd4,主分区是/dev/sdd1。每项目组内,各设置5个用户,其用户名格式为:组名_user_n,其中n为1~5,其家目录都在/home目录下。具体设置如下: (1)每个组的每个用户都有自己的私有目录(来自1中定义的逻辑卷); (2)每个组都各自拥有一个公共目录(来自1中定义的主分区); (3)每个用户的私有目录仅允许自己有全部权限,组内用户有访问权限,其他用户没有任何权限; (4)每个组的公共目录仅允许root用户有访问权限,组内用户有全部权限,其他用户均无任何权限; (5)建立用户和组的过程,请使用shell脚本实现。 (6)提供shell脚本文件源码。
时间: 2023-06-12 22:03:51 浏览: 155
以下是实现上述要求的shell脚本文件源码:
```
#!/bin/bash
# 创建组
groupadd group1
groupadd group2
groupadd group3
# 创建用户
for i in {1..5}
do
useradd -G group1 -m -d /home/group1_user_$i group1_user_$i
useradd -G group2 -m -d /home/group2_user_$i group2_user_$i
useradd -G group3 -m -d /home/group3_user_$i group3_user_$i
done
# 挂载逻辑卷
mkdir /mnt/private
mkdir /mnt/private/group1
mkdir /mnt/private/group2
mkdir /mnt/private/group3
mkdir /mnt/public
mount /dev/sdd2 /mnt/private/group1
mount /dev/sdd3 /mnt/private/group2
mount /dev/sdd4 /mnt/private/group3
mount /dev/sdd1 /mnt/public
# 设置权限
for i in {1..5}
do
# 私有目录
chown group1_user_$i:group1 /mnt/private/group1/group1_user_$i
chmod 700 /mnt/private/group1/group1_user_$i
setfacl -m u:group1_user_$i:rwx /mnt/private/group1/group1_user_$i
setfacl -m g:group1:r-x /mnt/private/group1/group1_user_$i
setfacl -m o::--- /mnt/private/group1/group1_user_$i
chown group2_user_$i:group2 /mnt/private/group2/group2_user_$i
chmod 700 /mnt/private/group2/group2_user_$i
setfacl -m u:group2_user_$i:rwx /mnt/private/group2/group2_user_$i
setfacl -m g:group2:r-x /mnt/private/group2/group2_user_$i
setfacl -m o::--- /mnt/private/group2/group2_user_$i
chown group3_user_$i:group3 /mnt/private/group3/group3_user_$i
chmod 700 /mnt/private/group3/group3_user_$i
setfacl -m u:group3_user_$i:rwx /mnt/private/group3/group3_user_$i
setfacl -m g:group3:r-x /mnt/private/group3/group3_user_$i
setfacl -m o::--- /mnt/private/group3/group3_user_$i
# 公共目录
chmod 770 /mnt/public/group1
chown root:group1 /mnt/public/group1
chmod 770 /mnt/public/group2
chown root:group2 /mnt/public/group2
chmod 770 /mnt/public/group3
chown root:group3 /mnt/public/group3
done
```
请注意,运行该脚本文件需要root权限。脚本中的实现方式可能不是最优解,但可以满足要求。建议在实际使用前进行测试,并根据实际情况进行必要的修改。
阅读全文