题目描述
您管理了一台运行 Ubuntu 20.04 的 Linux 服务器。现在有一个需求:创建名为 devuser1
、devuser2
和 devuser3
三个用户,并分别将他们添加到一个名为 devgroup
的用户组中。同时,要求这些用户可以互相访问并修改彼此的文件。
请编写一份 shell 脚本,包含完成这些任务的命令,并确保脚本可以在 Ubuntu 20.04 中正常运行。
注意:为了保证安全,在实际测试环境中,请勿直接使用 sudo
命令以 root 用户身份运行此脚本,建议使用普通用户身份(如当前用户)测试。
参考答案
下面是一份参考答案,您可以根据需要进行调整:
#!/bin/bash
# 检查是否以 root 用户身份运行
if [ "$(id -u)" != "0" ]; then
echo "必须以 root 用户身份运行此脚本。"
exit 1
fi
# 创建用户组
groupadd devgroup
# 创建用户,并设置密码
useradd -m -s /bin/bash -p $(openssl passwd -1 1234qwer) devuser1
useradd -m -s /bin/bash -p $(openssl passwd -1 1234qwer) devuser2
useradd -m -s /bin/bash -p $(openssl passwd -1 1234qwer) devuser3
# 将用户添加到用户组中
usermod -aG devgroup devuser1
usermod -aG devgroup devuser2
usermod -aG devgroup devuser3
# 允许用户互相访问并修改彼此的文件
mkdir /home/devuser1/shared
mkdir /home/devuser2/shared
mkdir /home/devuser3/shared
chgrp -R devgroup /home/devuser*/shared
chmod -R g+rwxs /home/devuser*/shared
echo "用户和用户组创建成功。"
该脚本实现了以下功能:
- 创建了名为
devgroup
的用户组。 - 创建了三个用户
devuser1
、devuser2
和devuser3
,并将他们的密码设置为1234qwer
。 - 将这些用户添加到
devgroup
用户组中。 - 为每个用户创建了一个名为
shared
的共享目录,并将其所属组设置为devgroup
。 - 通过
chmod
命令将shared
目录的权限设置为 g+rwxs,其中 g 表示将权限应用于同组用户,r 表示读权限,w 表示写权限,x 表示可执行权限,s 表示设置 SGID 位,表示新建文件的所属组与父目录的所属组相同。
请注意,在生产环境中,需要根据安全规范对用户密码进行设置,并严格控制共享目录的访问权限,以保证系统的安全性和稳定性。