Linux用户和组管理实验

实验环境:

公司的Linux主机即将提供给技术部作为开发服务器使用,根据部门内项目组的构成情况,首先需要建立相应的组账号、用户账号,并为相关目录设置权限;还需要设置一个共用的数据存储目录,便于同事之间的数据交换。

需求描述:

  1. 建立用户目录
    创建目录/tech/team1和/tech/team2,分别用于存放各项目组中用户账号的宿主文件夹
    例如natasha用户的宿主目录位于/tech/team1

  2. 添加组账号
    为技术部添加组账号tech,GID设置为2000
    为两个项目组添加组账号team1、team2,GID分别设置为2001、2002

  3. 添加用户账号

    • team1组包括三个用户,分别为natasha,harry、sarah,宿主目录均使用/tech/team1目录中与账号同名的文件夹,其中natash账号设为2023年12月31日后失效
    • team2组包括两个用户,分别为kitty和mary,宿主目录均使用/tech/team2目录中与账号同名的文件夹

​ 用户的初始密码设置为redhat

  1. 创建目录和归属

    • 将/tech目录的属组设置为tech,去除其他用户的所有权限
    • 将/tech/team1目录的属组设置为team1,去除其他用户的所有权限
    • 将/tech/team2目录的属组设置为team2,去除其他用户的所有权限
  2. 建立公共数据存储目录

    创建/public目录,允许所有技术部组内的用户读取、写入、执行文件,非技术部组内的用户禁止访问此目录。

完成上述实验,并给出截图

实验过程

建立用户目录:

  1. 分别创建**/tech/team1/tech/team2**目录
mkdir -p /tech/{team1,team2}
img

添加组账号:

  1. 技术组账号tech,GID为2000,项目组账号team1、team2,GID为2001、2002
groupadd -g 2000 tech
groupadd -g 2001 team1
groupadd -g 2002 team2
img

添加用户账号

  1. team1组创建账号并添加
useradd -d /tech/team1/natasha -g team1 -e 2023-12-31 natasha
useradd -d /tech/team1/harry -g team1 harry
useradd -d /tech/team1/sarah -g team1 sarah
img
  1. 创建初始密码:redhat
passwd natasha
passwd harry
passwd sarah
img
  1. team2组创建账号并添加
useradd -d /tech/team2/kitty -g team2 -G tech kitty
useradd -d /tech/team2/mary -g team2 -G tech mary
img
  1. 创建初始密码:redhat
passwd kitty
passwd mary
img

创建目录和归属:

  1. 将/tech目录的属组设置为tech,去除其他用户的所有权限
chown :tech /tech
chmod 750 /tech
img
  1. 将/tech/team1目录的属组设置为team1,去除其他用户的所有权限
chown :team1 /tech/team1
chmod 750 /tech/team1
img
  1. 将/tech/team2目录的属组设置为team2,去除其他用户的所有权限
chown :team2 /tech/team2
chmod 750 /tech/team2
img

建立公共目录:

  1. 创建目录并设置要求权限
mkdir /public
chown :tech /pulic
chmod 770 /public
img

验证上述配置

因为tech技术组内并没有用户,所以先向tech组中添加两名用户分别为test1、test2

img

验证目录归属:

img

tech组内用户可以访问/tech目录,但是不能访问/tech/team1和/tech/team2目录

验证公共存储目录:

img

tech组内用户可以创建、写入和执行文件

验证其他用户是否可以访问公共目录:

img

team1与team2组内用户均无法访问/public目录

存在问题&解决方法

宿主目录权限问题:

  1. 因为/tech目录的所属组为tech,并为其他用户去除了所有权限,因此team1组和team2组内用户无法访问到自己的宿主目录
img

解决方法:

  1. 将/tech目录权限设置为751,即其他用户拥有执行权限
img

team1和team2组内用户可以访问自己的宿主目录

文删除权限问题:

  1. 因为/public目录被设置为test组内用户拥有所有权限,所以组内其他用户可以删除或者修改组内其他用户的文件
img

解决方法:

  1. 将/public文件夹权限设置为1770
chmod 1770 /public
img

这样组内用户只能对自己创建的文件进修改操作,而没有权限修改组内其他用户创建的文件