centOS学习第二天(文件权限)

在 Linux 里面,任何一个文件都具有『User, Group 及 Others』三种身份的个别权限,另外还有一个root
centOS学习第二天(文件权限)
文件的容量大小,默认单位为 bytes
第一个字符代表这个文件是『目录、文件或链接文件等等』:
o 当为[ d ]则是目录,例如上表档名为『.config』的那一行;
o 当为[ - ]则是文件,例如上表档名为『initial-setup-ks.cfg』那一行;
o 若是[ l ]则表示为连结档(link file);
o 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
o 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
 接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表
可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出
现减号[ - ]而已。

o 第一组为『文件拥有者可具备的权限』,以『initial-setup-ks.cfg』那个文件为例, 该文件的拥有者
可以读写,但不可执行;
o 第二组为『加入此群组之账号的权限』;
o 第三组为『非本人且没有加入本群组之其他账号的权限』。

如果想要显示完整的时间格式,可以利用 ls 的选项,亦即:『ls -l --full-time』就能够显示出完整的
时间格式了!包括年、月、日、时间喔。 另外,如果你当初是以繁体中文安装你的 Linux 系统,那
么日期字段将会以中文来显示。 可惜的是,中文并没有办法在纯文本的终端机模式中正确的显示,
所以此栏会变成乱码。 那你就得要使用『export LC_ALL=en_US.utf8』来修改语系喔!
如果想要让系统默认的语系变成英文的话,那么你可以修改系统配置文件『/etc/locale.conf』,利用
第四章谈到的 nano 来修改该文件的内容,使 LANG 这个变量成为上述的内容即可。

例题:
承上一题如果我的目录为底下的样式,请问 testgroup 这个群组的成员与其他人(others)是否可以进入本目录?
drwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 groups/
答:
 文件拥有者 test1[rwx]可以在本目录中进行任何工作;
 而 testgroup 这个群组[r-x]的账号,例如 test2, test3 亦可以进入本目录进行工作,但是不能在本目录下进行
写入的动作;
 至于 other 的权限中[r–]虽然有 r ,但是由于没有 x 的权限,因此 others 的使用者,并不能进入此目录\

其实一个文件的
属性与权限有很多!我们先介绍几个常用于群组、拥有者、各种身份的权限之修改的指令,如下所示:
 chgrp :改变文件所属群组
 chown :改变文件拥有者
 chmod :改变文件的权限, SUID, SGID, SBIT 等等的特性

centOS学习第二天(文件权限)
centOS学习第二天(文件权限)
centOS学习第二天(文件权限)
centOS学习第二天(文件权限)
centOS学习第二天(文件权限)
centOS学习第二天(文件权限)

目录与文件之权限意义

权限对文件的重要性
文件是实际含有数据的地方,包括一般文本文件、数据库内容文件、二进制可执行文件(binary program)
等等。 因此,权限对于文件来说,他的意义是这样的:
 r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;
 w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);
 x (eXecute):该文件具有可以被系统执行的权限。
那个可读®代表读取文件内容是还好了解,那么可执行(x)呢?这里你就必须要小心啦! 因为在
但是在 Linux 底下,我们的文件是否能被执行,则是藉由是否具有『x』这个权限来决定的!跟
档名是没有绝对的关系的!至于最后一个 w 这个权限呢?当你对一个文件具有 w 权限时,你可以具有写入/编辑/新增/修改文件的内容的权限, 但并不具备有删除该文件本身的权限!对于文件的 rwx 来说, 主要都是针对『文件的内容』而言,与文件档名的存在与否没有关系喔!因为文件记录的是实际的数据嘛!

权限对目录的重要性
文件是存放实际数据的所在,那么目录主要是储存啥玩意啊?目录主要的内容在记录文件名列表,文
件名与目录有强烈的关连啦! 所以如果是针对目录时,那个 r, w, x 对目录是什么意义呢?
 r (read contents in directory):
表示具有读取目录结构列表的权限,所以当你具有读取®一个目录的权限时,表示你可以查询该目录下的
文件名数据。 所以你就可以利用 ls 这个指令将该目录的内容列表显示出来!
 w (modify contents of directory):
这个可写入的权限对目录来说,是很了不起的! 因为他表示你具有异动该目录结构列表的权限,也就是底
下这些权限:
o 建立新的文件与目录;
o 删除已经存在的文件与目录(不论该文件的权限为何!)
o 将已存在的文件或目录进行更名;
o 搬移该目录内的文件、目录位置。
总之,目录的 w 权限就与该目录底下的文件名异动有关就对了啦!
 x (access directory):
咦!目录的执行权限有啥用途啊?目录只是记录文件名而已,总不能拿来执行吧?没错!目录不可以被执
行,目录的 x 代表的是用户能否进入该目录成为工作目录的用途! 所谓的工作目录(work directory)就是你
目前所在的目录啦!比如账户 vbird 不具有 x 的权限, 因此 vbird 并不能切换到此目录内!(相当重要的概念!)举例来说,当你登入 Linux 时, 你所在的家目录就是你当下的工作目录。而变换目录
的指令是『cd』(change directory)啰!能不能进入某一个目录,只与该目录的 x 权限有关啦!此外, 工作目录对于指令的执行是非常重要的,如果你在某目录下不具有 x 的权限, 那么你就无法切换到该目录下,也就无法执行该目录下的任何指令,即使你具有该目录的 r 或 w 的权限
对一般文件来说,rwx 主要是针对『文件的内容』来设计权限,对目录来说,rwx 则是针对『目录内的文件名列表』来设计权限。
要开放目录给任何人浏览时,应该至少也要给予 r 及 x 的权限,但 w 权限不可随便给!

例题:
假设有个账号名称为 dmtsai,他的家目录在/home/dmtsai/,dmtsai 对此目录具有[rwx]的权限。 若在此目录下有个
名为 the_root.data 的文件,该文件的权限如下:
-rwx------ 1 root root 4365 Sep 19 23:20 the_root.data
请问 dmtsai 对此文件的权限为何?可否删除此文件?
答:
如上所示,由于 dmtsai 对此文件来说是『others』的身份,因此这个文件他无法读、无法编辑也无法执行, 也就
是说,他无法变动这个文件的内容就是了。
但是由于这个文件在他的家目录下, 他在此目录下具有 rwx 的完整权限,因此对于 the_root.data 这个『档名』来
说,他是能够『删除』的! 结论就是,dmtsai 这个用户能够删除 the_root.data 这个文件!
centOS学习第二天(文件权限)