7章Linux下的文件权限管理

了解Linux的文件系统  

Linux文件系统与Windows文件系统的比较 

了解Linux系统下默认的目录 

掌握Linux目录与文件的权限 

了解系统的umask值 

了解Linux下的文件访问控制列表

Linux的基本文件系统类型

普通文件              

⚫ 例如: 

目录文件

⚫ 例如: 

链接文件          

⚫ 例如: 

特殊文件

⚫ 例如:

Linux文件系统与Windows文件系统的对比

 

Linux系统下的默认目录 2-1 

/bin

⚫ 常见的用户命令 

/boot

⚫ 可引导Linux内核和引导装载程序配置文件 

/dev

⚫ 设备目录 

/etc

⚫ 管理配置文件 

/home

⚫ 用户的主目录 

/media和/mnt

⚫ 提供挂载设备的位置

Linux系统下的默认目录 2-2

/proc

⚫ 内核进程目录 

/sbin

⚫ 管理命令和守护进程 

/sys

⚫ 类似/proc 

/tmp

⚫ 临时文件 

/usr

⚫ 用户文档、游戏、库文件和管理员命令和文件 

/var

⚫ 各种应用程序使用数据的目录

文件/目录的权限和归属 

访问权限

⚫ 读取:允许查看文件内容、显示目录列表

⚫ 写入:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录

⚫ 可执行:允许运行程序、切换目录 

归属(所有权)

⚫ 属主:拥有该文件或目录的用户帐号

⚫ 属组:拥有该文件或目录的组帐号

 

设置文件/目录的归属 

chown命令

⚫ 格式:

chown 属主 文件或目录

chown :属组 文件或目录

chown 属主:属组 文件或目录

常用命令选项

⚫ -R:递归修改指定目录下所有文件、子目录的归属

例如:

给各个用户添加权限

 

给各个用户取消权限

更改属主目录

更改属主和属组

Linux系统的特殊权限位  

粘着位(sticky)

⚫ 现在仅用于目录

⚫ 当一个目录被设置为“粘着位”(chmod a+t),则该目录下的文件只能由

◆ 1、超级管理员删除

◆ 2、该目录的所有者删除

◆ 3、该文件的所有者删除

例如:

粘着位

看是否设置粘着位,观察最后一位,如果是t说明之前有x权限,是T说明之前没有x权限

 

设置粘着位(使用数字)

Linux下文件的隐藏属性 

隐藏属性

⚫ Linux系统中的文件除了具备一般权限和特殊权限之外,还有一种隐藏权限,即被隐藏起来的 权限,默认情况下不能直接被用户发觉。

Linux下文件的隐藏属性 

lsattr命令查看文件的隐藏权限

[root@centos7 ~]# lsattr file1 ---------------- file1 

chattr命令设置文件的隐藏权限

[root@centos7 ~]# chattr +a file1

[root@centos7 ~]# lsattr file1 -----a---------- file1

[root@centos7 ~]# ls anaconda-ks.cfg centos7.7.iso file1

[root@centos7 ~]# rm file1

rm:是否删除普通文件 "file1"y

rm: 无法删除"file1": 不允许的操作

[root@centos7 ~]# chattr -a file1

[root@centos7 ~]# rm file1

rm:是否删除普通文件 "file1"y

例如:

Linux 下文件的隐藏属性

设置隐藏权限

 

检验,观察是否可以删除

去掉权限,发现可以删除

Linux系统的umask值 

umask:指定建立文件或目录时预设的权限掩码

用法1umask 查看系统当前的权限掩码值

例如:

[root@centos7 ~]# umask

0022

用法2umask 数值 设定系统的权限掩码

例如:

[root@centos7 ~]# umask 333

[root@centos7 ~]# umask

0333

例如:

Linux系统的umask

目录掩码:777-目录初始的掩码

文件掩码控制文件初始权限

777-初始掩码-x

777-目录333=444

创建文件444

 

Linux下的文件访问控制列表 

文件的ACL

⚫ 一般权限、特殊权限、隐藏权限都是针对某一类用户设置的。如果希望对某个指定的用户进 行单独的权限控制,就需要用到文件的访问控制列表(ACL)。 ⚫ 基于普通文件或目录设置ACL其实就是针对指定的用户或用户组设置文件或目录的操作权限。 另外,如果针对某个目录递归设置了ACL,则目录中的文件会继承其ACL;若针对文件设置 了ACL,则文件不再继承其所在目录的ACL。

Linux下的文件访问控制列表 

getfacl命令查看文件上设置的ACL信息

[root@centos7 ~]# getfacl /root/ 

setfacl命令管理文件的ACL规则

⚫ -R 针对目录文件需要使用递归

⚫ -m 针对普通文件 setfacl -m  u:rose:r-x /root

⚫ -b 删除某个文件的ACL

Linux下的文件访问控制列表

[root@centos7 ~]# getfacl /root/

getfacl: Removing leading '/' from absolute path names

# file: root/

# owner: root

# group: root

user::r-x

group::r-x

other::---

[root@centos7 ~]# su - rose

[rose@centos7 ~]$ cd /root/

-bash: cd: /root/: 权限不够

[rose@centos7 ~]$ exit

登出

Linux下的文件访问控制列表

[root@centos7 ~]# setfacl -m u:rose:r-x /root

[root@centos7 ~]# getfacl /root/

getfacl: Removing leading '/' from absolute path names

# file: root/

# owner: root

# group: root

user::r-x

user:rose:r-x

group::r-x

mask::r-x

other::---

[root@centos7 ~]# su - rose

[rose@centos7 ~]$ cd /root/

[rose@centos7 root]$ pwd

/root

练习

文件的访问控制列表

首先创建usradd rose

root上:在查看acl列表

 

root添加到访问控制列表里

Setfacl  -m 

dian . + 号代替 证明文件有设置访问控制列表的权限

rose上:发现可以查看root的控制列表

root

重新演示

设置访问权限命令

root加入可访问控制列表setfacl -m  u:rose:r-x   /root

                                                              用户      权限   自己

root上删除访问控制列表

加号变成 . dain

说明root上的访问控制权限被删除