Linux_第五章_实验案例:用户和文件权限管理

发布于:2024-06-11 ⋅ 阅读:(14) ⋅ 点赞:(0)

1、实验环境

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

2、需求描述

  • 建立用户目录。
    • 创建目录/tech/benet和/tech/accp,分别用于存放各项自组中用户账号的宿主文件夹。
  • 添加组账号
    • 为两个项自组添加组账号benet,accp,GID号分别设置为2001、2002,
    • 为技术部添加组账号tech.GD号设置为300.
  • 添加用户账号
    • benet组包括三个用户,分别为kylin、tsengia、obama,宿主目录均使用/tech/benet/目录中与账号同名的文件夹。其中kylin 用户账号设为2018年12月31日后失效。
    • accp组包括两个用户,分别为handy, cucci,宿主目录均使用/tech/accp/目录中与账号同名的文件夹。其中 cucci 用户的登录Shell设为/bin/sh.

        上述所有的用户账号均要求加入 tech组内。

        在测试阶段,仅为kylin、tsengia、handy这三个用户账号设置初始密码“123456”,其他用户暂时先不设置密码。

  • 设置目录权限及归属.
    • 将/tech目录的属组设置为tech,去除其他用户的所有权限。
    • 将/tech/benet目录的属组设置为benet,去除其他用户的所有权限。
    • 将/tech/ accp目录的属组设置为accp,去除其他用户的所有权限。
  • 建立公共数据存储目录.
    • 创建/public目录.允许所有技术组内的用户读取、写入.执行文件.非技术组的用户禁止访问此目录.

3、实验步骤

3.1、创建用户目录

        创建目录/tech/benet和/tech/accp,分别用于存放各项目组中用户账号的宿主文件夹。

[root@node1 ~]# mkdir -p /tech/benet
[root@node1 ~]# mkdir -p /tech/accp

3.2、添加组账号

(1)为两个项目添加组账号benet,accp,GID号分别设置为2001、2002。

(2)为技术部添加组账号tech,GID号设置为300

[root@node1 ~]# groupadd -g 2001 benet
[root@node1 ~]# groupadd -g 2002 accp
[root@node1 ~]# groupadd -g 300 tech

查看这三个组的GID

[root@node1 ~]# grep "benet" /etc/group
benet:x:2001:
[root@node1 ~]# grep "accp" /etc/group
accp:x:2002:
[root@node1 ~]# grep "tech" /etc/group
tech:x:300:

3.3、添加组账号

(1)benet组包含三个用户,分别为kylin,tsengia,obama,宿主目录均使用/tech/benet目录中与账号同名的文件夹。其中kylin用户账号设为2000年1月1日后失效。

(2)accp组包括两个用户,分别为handy、cucci,宿主目录均使用/tech/accp目录中与账号同名的文件夹。其中cucci用户的登录Shell设置为/bin/sh

[root@node1 ~]# useradd -e 2020-1-1 -d /tech/benet/kylin -g benet kylin
[root@node1 ~]# useradd -d /tech/benet/tsengia -g benet tsengia
[root@node1 ~]# useradd -d /tech/benet/obama -g benet obama
[root@node1 ~]# useradd -d /tech/accp/handy -g accp handy
[root@node1 ~]# useradd -d /tech/accp/cucci -g accp -s /bin/sh cucci

3.4、验证结果

[root@node1 ~]# groups kylin 
kylin : benet
[root@node1 ~]# groups tsengia 
tsengia : benet
[root@node1 ~]# groups obama 
obama : benet
[root@node1 ~]# tail -5 /etc/passwd
kylin:x:1001:2001::/tech/benet/kylin:/bin/bash
tsengia:x:1002:2001::/tech/benet/tsengia:/bin/bash
obama:x:1003:2001::/tech/benet/obama:/bin/bash
handy:x:1004:2002::/tech/accp/handy:/bin/bash
cucci:x:1005:2002::/tech/accp/cucci:/bin/sh

3.5、上述所有的用户账号均要求加入tech组内

[root@node1 ~]# usermod -a -G tech kylin 
[root@node1 ~]# usermod -a -G tech tsengia 
[root@node1 ~]# usermod -a -G tech obama 
[root@node1 ~]# usermod -a -G tech handy 
[root@node1 ~]# usermod -a -G tech cucci

验证结果

[root@node1 ~]# grep "tech" /etc/group
tech:x:300:kylin,tsengia,obama,handy,cucci

3.6、为kylin、tsengia、handy这三个用户账号设置初始密码“123456”,其他用户暂时先不设置密码

[root@node1 ~]# echo "123456" | passwd --stdin kylin 
[root@node1 ~]# echo "123456" | passwd --stdin tsengia 
[root@node1 ~]# echo "123456" | passwd --stdin handy 

3.7、设置目录权限及归属

(1)将/tech目录的属组设置为tech,去除其他用户的所有权限

(2)将/tech/benet目录的属组设置为benet,去除其他用户的所有权限

(3)将/tech/accp目录的属组设置为accp,去除其他用户的所有权限

[root@node1 ~]# chown :tech /tech/
[root@node1 ~]# chown :benet /tech/benet/
[root@node1 ~]# chown :accp /tech/accp/
[root@node1 ~]# chmod 770 /tech/
[root@node1 ~]# chmod 770 /tech/benet/
[root@node1 ~]# chmod 770 /tech/accp/

验证结果

[root@node1 ~]# ls -ld /tech/
drwxrwx--- 4 root tech 31 6月   6 14:23 /tech/
[root@node1 ~]# ls -ld /tech/benet/
drwxrwx--- 5 root benet 47 6月   6 14:24 /tech/benet/
[root@node1 ~]# ls -ld /tech/accp/
drwxrwx--- 4 root accp 32 6月   6 14:25 /tech/accp/

3.8、建立公共数据存储目录

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

[root@node1 ~]# mkdir /public
[root@node1 ~]# chown :tech /public/
[root@node1 ~]# ls -ld /public/
drwxr-xr-x 2 root tech 6 6月   6 14:32 /public/
[root@node1 ~]# chmod 770 /public/
[root@node1 ~]# ls -ld /public/
drwxrwx--- 2 root tech 6 6月   6 14:32 /public/