由第五章、Linux文件权限的内容我们可以知道一个文件有若干个属性, 包括读写执行(r, w, x)等基本权限,及是否为目录 (d) 与文件 (-) 或者是链接文件 (l) 等等的属性! 要修改属性的方法在前面也约略提过了(chgrp,chown,chmod) ,本小节会再加强补充一下!
除了基本r, w, x权限外,在Linux传统的Ext2/Ext3/Ext4文件系统下,我们还可以设置其他的系统隐藏属性, 这部份可使用chattr来设置,而以lsattr来查看,最重要的属性就是可以设置其不可修改的特性!让连文件的拥有者都不能进行修改! 这个属性可是相当重要的,尤其是在安全机制上面 (security)!比较可惜的是,在 CentOS 7.x 当中利用 xfs 作为默认文件系统, 但是 xfs 就没有支持所有的 chattr 的参数了!仅有部份参数还有支持而已!
首先,先来复习一下上一章谈到的权限概念,将下面的例题看一看先:
例题:你的系统有个一般身份使用者 dmtsai,他的群组属于 dmtsai,他的主文件夹在 /home/dmtsai, 你是root,你想将你的 ~/.bashrc 复制给他,可以怎么作?答:由上一章的权限概念我们可以知道 root 虽然可以将这个文件复制给 dmtsai,不过这个文件在 dmtsai 的主文件夹中却可能让 dmtsai 没有办法读写(因为该文件属于 root 的嘛!而 dmtsai 又不能使用 chown 之故)。 此外,我们又担心覆盖掉 dmtsai 自己的 .bashrc 配置文件,因此,我们可以进行如下的动作喔: 复制文件: cp ~/.bashrc ~dmtsai/bashrc 修改属性: chown dmtsai:dmtsai ~dmtsai/bashrc
例题:我想在 /tmp 下面创建一个目录,这个目录名称为 chapter6_1 ,并且这个目录拥有者为 dmtsai, 群组为 dmtsai,此外,任何人都可以进入该目录浏览文件,不过除了 dmtsai 之外,其他人都不能修改该目录下的文件。答:因为除了 dmtsai 之外,其他人不能修改该目录下的文件,所以整个目录的权限应该是 drwxr-xr-x 才对! 因此你应该这样做:创建目录: mkdir /tmp/chapter6_1 修改属性: chown -R dmtsai:dmtsai /tmp/chapter6_1 修改权限: chmod -R 755 /tmp/chapter6_1
在上面这个例题当中,如果你知道 755 那个分数是怎么计算出来的,那么你应该对于权限有一定程度的概念了。 如果你不知道 755 怎么来的?那么...赶快回去前一章看看chmod那个指令的介绍部分啊!这部分很重要喔!你得要先清楚的了解到才行~否则就进行不下去啰~ 假设你对于权限都认识的差不多了,那么下面我们就要来谈一谈,“新增一个文件或目录时,默认的权限是什么?”这个议题!