Linux 文件目录权限实例
假设.net用户、组如下:
组 | 用户 |
---|---|
training | nash_su,bob |
market | alice,john |
manage | steve,david |
- 现要求各部门、员工之间建立相应的文件夹,要求如下:
- 所有目录、文件保存在统一的一个文件夹下
- 每个部门拥有一个独立的文件夹
- 不同部门之间不可访问各自的文件夹
- 每个员工在部门文件夹下拥有一个所属的文件夹
- 同员工不同员工之间可以查看各自的文件夹,但不可修改,用户仅可以修改自己的内容
1.以 root 用户登录添加组和用户,并为用户指定附属组(部门):
注意点1:useradd
-g<群组> 指定用户所属的群组。
-G<群组> 指定用户所属的附加群组。
[root@localhost ~]# groupadd training
[root@localhost ~]# groupadd market
[root@localhost ~]# groupadd manage
[root@localhost ~]# useradd -G training nash_su
[root@localhost ~]# useradd -G training bob
[root@localhost ~]# useradd -G market alice
[root@localhost ~]# useradd -G market john
[root@localhost ~]# useradd -G manage steve
[root@localhost ~]# useradd -G manage david
- 所有目录、文件保存在统一的一个文件夹下
- 每个部门拥有一个独立的文件夹
- 不同部门之间不可访问各自的文件夹
2为了让整个公司的文件夹 net有足够的访问权限,在根目录 “/” 下创建公司的文件夹目录
/net,并创建三个部门子目录,去掉每个部门目录的其他用户的权限并指定所属部门:注意点2:mkdir
-m :建立目录的同r时设置目录的权限;
-p:若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;
chgrp training /net/training/ -->将文件&目录/net/training所在组修改为 training
[root@localhost ~]# mkdir /net
[root@localhost ~]# mkdir -pm 750 /net/training
[root@localhost ~]# mkdir -pm 750 /net/market
[root@localhost ~]# mkdir -pm 750 /net/manage
[root@localhost ~]# chgrp training /net/training/
[root@localhost ~]# chgrp market /net/market/
[root@localhost ~]# chgrp manage /net/manage/
[root@localhost ~]# cd /net
[root@localhost net]# ls
manage market training
[root@localhost net]# ll
总用量 0
drwxr-x---. 2 root manage 6 11月 7 10:58 manage
drwxr-x---. 2 root market 6 11月 7 10:58 market
drwxr-x---. 2 root training 6 11月 7 10:58 training
创建员工目录,并为每个目录指定它的所属员工和所属部门
每个员工有自己的文件夹,并且不同员工之间只能查看不能修改。
注意点3: 修改文件所有者: -chown
chown nash_su /net/training/nash_su --> 将/net/training/nash_su 的所有者修改为nash_su
[root@localhost /]# mkdir -pm 750 /net/training/nash_su
[root@localhost /]# mkdir -pm 750 /net/training/bob
[root@localhost /]# mkdir -pm 750 /net/market/alice
[root@localhost /]# mkdir -pm 750 /net/market/john
[root@localhost /]# mkdir -pm 750 /net/manage/steve
[root@localhost /]# mkdir -pm 750 /net/manage/david
[root@localhost /]# chown nash_su /net/training/nash_su
[root@localhost /]# chown bob /net/training/bob
[root@localhost /]# chown alice /net/market/alice
[root@localhost /]# chown john /net/market/john
[root@localhost /]# chown steve /net/manage/steve
[root@localhost /]# chown david /net/manage/david
[root@localhost /]# chgrp training /net/training/nash_su
[root@localhost /]# chgrp training /net/training/bob
[root@localhost /]# chgrp market /net/market/alice
[root@localhost /]# chgrp market /net/market/john
[root@localhost /]# chgrp manage /net/manage/steve
[root@localhost /]# chgrp manage /net/manage/david
切换用户测试是否成功
[root@localhost /]# su bob
[bob@localhost /]$ ls /net/training //可以查看自己的部门
bob nash_su
[bob@localhost /]$ ls /net/market
ls: 无法打开目录/net/market: 权限不够 //不可以查看其他的部门
[bob@localhost /]$ ls /net/training/bob //可以查看自己的目录
[bob@localhost /]$ ls /net/training/nash_su//可以查看同事的目录
[bob@localhost /]$ touch test /net/training/nash_su
touch: 无法创建"test": 权限不够 //不能修改同部门同事的目录
touch: 正在设置"/net/training/nash_su" 的时间: 权限不够