大家好,我是阿萨。中秋假期已过2天。 今天开始收心了。 今天继续学习Linux相关知识。今天学习权限管理。权限管理的重要性大家都知道。不同用户,不同用户组以及文件之间的权限之间的关系,决定了数据的安全性。安全性级别越高的服务器,越需要设置更严密的权限控制。
一,权限相关基本概念
首先我们使用ls 命令查看下当前目录下的内容。
前2行内容. 和.. 都是隐藏的目录和文件。 共有7列内容显示,分别是:
- 不同的用户对文件拥有的权限。
- 引用计数,文件的硬链接个数或者目录至少有多少个一级子目录
- 所有者,文件属于哪一个用户
- 所属组,建立用户所在组
- 文件到小,默认单位是字节
- 文件修改时间
- 文件名或目录名
Linux 文件调用权限分为三级:Owner,Group 以及 Other Users. 对应上面第一列 除第一个字母的9个字符。
其中r=4, w=2, x=1 , 所以经常看到大家使用chmod 777 设置权限就是表示给三个级别都设置上权限。
二, umask 简介
Linux使用 umask 默认权限来给所有新建的文件和目录赋予初始权限的。真正的文件初始权限使用如下公式获得:文件(或目录)的初始权限 = 文件(或目录)的最大默认权限 - umask权限文件的最大默认权限是666,表示任何用户都没有执行权限。目录的最大默认权限是777, 表示任何人都可以阅读,修改和执行。root用户的默认umask 是0022, 普通用户是0002
我们套用下上面的格式: 文件的初始权限应该是666-022 = 644, 我们尝试下,看下结果。
umask 也可以临时修改下权限,重启或者重新登录就会失效。 命令 :umask 033
三 ,ACL 访问控制权限
ACL= Access Control List , ACL 可实现对单一用户设置访问文件的权限。ACL 命令有2个 setfacl 和getfacl , 一个是给执行文件或目录设置ACL 权限,一个是查看ACL 权限。setfacl 的参数以及详解: