Linux 用户和组管理的实操题:

题目描述

您管理了一台运行 Ubuntu 20.04 的 Linux 服务器。现在有一个需求:创建名为 devuser1devuser2devuser3 三个用户,并分别将他们添加到一个名为 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 "用户和用户组创建成功。"

该脚本实现了以下功能:

  1. 创建了名为 devgroup 的用户组。
  2. 创建了三个用户 devuser1devuser2devuser3,并将他们的密码设置为 1234qwer
  3. 将这些用户添加到 devgroup 用户组中。
  4. 为每个用户创建了一个名为 shared 的共享目录,并将其所属组设置为 devgroup
  5. 通过 chmod 命令将 shared 目录的权限设置为 g+rwxs,其中 g 表示将权限应用于同组用户,r 表示读权限,w 表示写权限,x 表示可执行权限,s 表示设置 SGID 位,表示新建文件的所属组与父目录的所属组相同。

请注意,在生产环境中,需要根据安全规范对用户密码进行设置,并严格控制共享目录的访问权限,以保证系统的安全性和稳定性。

猜你喜欢

转载自blog.csdn.net/dgwxligg/article/details/129947077