Linux 文件目录权限实例

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" 的时间: 权限不够