【Linux练习】目录与用户权限练习
2020-04-12 本文已影响0人
今天Martin学习了吗
参照的是苏北地区某带专的 mooc 练习题;原因可能是因为闲的无聊⑧;然后有个目录与用户权限管理的练习题(嗯)我觉得也还行,就写个markdown记录一下;而且你会发现带专很多的题目都和开公司有关(哈哈哈哈哈哈)真不愧是带专人;带专魂;带专都是淫上淫(好!牛逼牛逼)
习题:
根据企业要求,现需要对目录和文件实现分级分部门管理,所有目录和文件均保存在/company目录下,每个部门拥有一个独立的文件夹,部门之间不能访问对方文件夹。另外,每个员工都有所属部门的文件夹,相同部门不同员工之间可以查看对方的文件夹,但不可修改,员工能修改自己的文件夹。每个部门人员和目录分配如表1所示。
1586672710240.png
步骤一:创建员工目录
首先我们在根目录下创建对应的公司、部门和员工的目录;因为我们使用的是root用户,这里注意是在根目录下(/)创建,不是在root的家目录下创建的(~)
[root@2017120008ls ~]# cd ..
# 首先我们切换到根目录,并查看有没有对应的company 目录(没有)
[root@2017120008ls /]# ll
总用量 24
lrwxrwxrwx. 1 root root 7 2月 16 17:24 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 2月 16 17:47 boot
drwxr-xr-x. 20 root root 3340 3月 4 20:38 dev
drwxr-xr-x. 140 root root 8192 4月 12 14:18 etc
# 创建三个部门目录;并检查
[root@2017120008ls /]# mkdir /company/yf
[root@2017120008ls /]# mkdir /company/fw
[root@2017120008ls /]# mkdir /company/sc
[root@2017120008ls /]# ll company/
总用量 0
drwxr-xr-x. 2 root root 6 4月 12 14:31 fw
drwxr-xr-x. 2 root root 6 4月 12 14:31 sc
drwxr-xr-x. 2 root root 6 4月 12 14:30 yf
# 在对应的部门目录下创建工具人(部门人员)目录
[root@2017120008ls /]# mkdir /company/yf/yf01
[root@2017120008ls /]# mkdir /company/yf/yf02
[root@2017120008ls /]# mkdir /company/sc/sc01
[root@2017120008ls /]# mkdir /company/sc/sc02
[root@2017120008ls /]# mkdir /company/fw/fw01
[root@2017120008ls /]# mkdir /company/fw/fw02
# 可以到一个目录下面检查一下是否创建了
[root@2017120008ls /]# cd company/yf/
[root@2017120008ls yf]# ll
总用量 0
drwxr-xr-x. 2 root root 6 4月 12 14:34 yf01
drwxr-xr-x. 2 root root 6 4月 12 14:34 yf02
# 到此为止,我们的目录已经创建好了
步骤二:设置部门目录权限
在设置部门目录权限之前,我们要保证我们的带专工具人公司里有足够的用户(工具人)所以我们在进行步骤二之前一定要创建对应的用户,并且指定他们所属的用户组(工具人要在集体中发挥社会主义的光和热)
[root@2017120008ls /]# tail /etc/passwd
# 首先我们需要查看一下用户文件,看看是否有存在的工具人(并没有)
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
# 接着,我们创建工具人用户(自定义工具人的用户id)
[root@2017120008ls /]# useradd -u 6001 yf01
[root@2017120008ls /]# useradd -u 6002 yf02
[root@2017120008ls /]# useradd -u 6003 sc01
[root@2017120008ls /]# useradd -u 6004 sc02
[root@2017120008ls /]# useradd -u 6005 fw01
[root@2017120008ls /]# useradd -u 6006 fw02
[root@2017120008ls /]# tail /etc/passwd
# 检查一下,我们已经创建了六个工具人
yf01:x:6001:6001::/home/yf01:/bin/bash
yf02:x:6002:6002::/home/yf02:/bin/bash
sc01:x:6003:6003::/home/sc01:/bin/bash
sc02:x:6004:6004::/home/sc02:/bin/bash
fw01:x:6005:6005::/home/fw01:/bin/bash
fw02:x:6006:6006::/home/fw02:/bin/bash
# 这个时候需要让每个同类的小朋友都能有一个所属组(用户组)不能让他们有很多的问号
[root@2017120008ls /]# tail /etc/group
# 首先,查看一下他们的用户组
yf01:x:6001:
yf02:x:6002:
sc01:x:6003:
sc02:x:6004:
fw01:x:6005:
fw02:x:6006:
# 然后我们要让同类的小朋友滚到一个组里去(我这里修改的是主组,因为,男人嘛你们懂的)
[root@2017120008ls /]# groupadd -g 6000 yf
[root@2017120008ls /]# usermod -g 6000 yf01
[root@2017120008ls /]# usermod -g 6000 yf02
[root@2017120008ls /]# groupdel yf01
[root@2017120008ls /]# groupdel yf02
# 修改了之后就直接删除没有小朋友的用户组(嗯对,过河拆桥,拔屌无情)其他两组都一样
[root@2017120008ls /]# groupadd -g 6001 fw
[root@2017120008ls /]# usermod -g 6001 fw01
[root@2017120008ls /]# usermod -g 6001 fw02
[root@2017120008ls /]# groupdel fw01
[root@2017120008ls /]# groupdel fw02
[root@2017120008ls /]# groupadd -g 6002 sc
[root@2017120008ls /]# usermod -g sc sc01
[root@2017120008ls /]# usermod -g sc sc02
[root@2017120008ls /]# groupdel sc01
[root@2017120008ls /]# groupdel sc02
# 最后我们通过查看工具人的方法检测是否对应的带专人都已经到了地儿
[root@2017120008ls /]# tail /etc/passwd
yf01:x:6001:6000::/home/yf01:/bin/bash
yf02:x:6002:6000::/home/yf02:/bin/bash
sc01:x:6003:6002::/home/sc01:/bin/bash
sc02:x:6004:6002::/home/sc02:/bin/bash
fw01:x:6005:6001::/home/fw01:/bin/bash
fw02:x:6006:6001::/home/fw02:/bin/bash
(是的)
接下来我们设置部门目录的权限
# 首先我们要意识到一个问题,对应的目录,因为是root用户创建的,所以他们此时还都属于 root 用户组,在工具人组的小朋友们根本无法访问 root 用户组里的目录
[root@2017120008ls /]# ll company/
总用量 0
drwxr-x---. 4 root root 30 4月 12 14:34 fw
drwxr-x---. 4 root root 30 4月 12 14:34 sc
drwxr-x---. 4 root root 30 4月 12 14:34 yf
# 所以我们要将生产力小组给予工具人,也就是修改这几个目录的所属用户组
[root@2017120008ls /]# chgrp fw company/fw
[root@2017120008ls /]# chgrp yf company/yf
[root@2017120008ls /]# chgrp sc company/sc
[root@2017120008ls /]# ll company/
总用量 0
drwxr-x---. 4 root fw 30 4月 12 14:34 fw
drwxr-x---. 4 root sc 30 4月 12 14:34 sc
drwxr-x---. 4 root yf 30 4月 12 14:34 yf
# 要保证文件的所有者有(rwx)权限,同组用户有(r_x)权限,其他用户没有权限
[root@2017120008ls /]# chmod 750 company/fw
[root@2017120008ls /]# chmod 750 company/yf
[root@2017120008ls /]# chmod 750 company/sc
# 这个时候我们切换到一个工具人账号,试图登录不属于自己属组的目录(在违法的边缘疯狂试探),最后系统告诉用户是在想peach,说明我们的权限设定,已经成功一半了
[root@2017120008ls /]# su yf01
[yf01@2017120008ls /]$ cd company/yf
[yf01@2017120008ls yf]$ cd ..
[yf01@2017120008ls company]$ cd sc
bash: cd: sc: 权限不够
步骤三:设置用户目录权限
[root@2017120008ls sc]# ll
总用量 0
drwxr-x---. 2 root root 6 4月 12 14:34 sc01
drwxr-x---. 2 root root 6 4月 12 14:34 sc02
# 现在我们发现,所有的用户目录的属主与属组都是 root 也就是我们有了工具人,但是工具人没有自己的文件夹,所以我们需要首先将文件夹给予工具人
[root@2017120008ls sc]# chown sc01:sc sc01
[root@2017120008ls sc]# chown sc02:sc sc02
[root@2017120008ls sc]# ll
总用量 0
drwxr-x---. 2 sc01 sc 6 4月 12 14:34 sc01
drwxr-x---. 2 sc02 sc 6 4月 12 14:34 sc02
# 其他的两组,也基本上是这个尿性
[root@2017120008ls /]# chown yf01:yf company/yf/yf01
[root@2017120008ls /]# chown yf01:yf company/yf/yf02
[root@2017120008ls /]# chown fw01:fw company/fw/fw01
[root@2017120008ls /]# chown fw01:fw company/fw/fw02
# 接着我们分析用户文件夹,同组的用户可以互相查看,完了只有用户自己可以修改自己的文件夹(750)
[root@2017120008ls /]# chmod 750 company/yf/yf01
[root@2017120008ls /]# chmod 750 company/yf/yf02
[root@2017120008ls /]# chmod 750 company/sc/sc01
[root@2017120008ls /]# chmod 750 company/sc/sc02
[root@2017120008ls /]# chmod 750 company/fw/fw01
[root@2017120008ls /]# chmod 750 company/fw/fw02