您的位置:首页 > 运维架构 > Linux

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

2020-02-04 00:14 106 查看

一、文件权限
在 Linux 里面,任何一个文件都具有『User, Group 及 Others』三种身份的个别权限,另外还有一个root

文件的容量大小,默认单位为 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 等等的特性






目录与文件之权限意义

权限对文件的重要性
文件是实际含有数据的地方,包括一般文本文件、数据库内容文件、二进制可执行文件(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 这个文件!

二、文件种类与扩展名
1.正规文件(regular file ):
就是一般我们在进行存取的类型的文件,在由 ls -al 所显示出来的属性方面,第一个字符为 [ - ],例如
[-rwxrwxrwx ]。另外,依照文件的内容,又大略可以分为:
o 纯文本档(ASCII):这是 Linux 系统中最多的一种文件类型啰, 称为纯文本档是因为内容为我们人
类可以直接读到的数据,例如数字、字母等等。举例来说,你可以下达『 cat ~/.bashrc 』就可以看到该文件的内容。 (cat 是将一个文件内容读出来的指令)
o 二进制文件(binary): 你的 Linux 当中的可执行文件(scripts, 文字型批处理文件不算)就是这种格式的啦~ 举例来说,刚刚下达的指令 cat 就是一个binary file。
o 数据格式文件(data): 有些程序在运作的过程当中会读取某些特定格式的文件,那些特定格式的文件可以被称为数据文件 (data file)。举例来说,我们的 Linux 在使用者登入时,都会将登录的数据记录在 /var/log/wtmp那个文件内,该文件是一个 data file,他能够透过 last 这个指令读出来! 但是使用 cat 时,会读出乱码~因为他是属于一种特殊格式的文件。
2. 目录(directory):
就是目录啰~第一个属性为 [ d ],例如 [drwxrwxrwx]。
3. 连结档(link):
就是类似 Windows 系统底下的快捷方式啦! 第一个属性为 [ l ](英文 L 的小写),例如 [lrwxrwxrwx] ;
4. 设备与装置文件(device):
与系统周边及储存等相关的一些文件, 通常都集中在/dev 这个目录之下!通常又分为两种:
o 区块(block)设备档 :就是一些储存数据, 以提供系统随机存取的接口设备,举例来说,硬盘与软盘等就是啦! 你可以随机的在硬盘的不同区块读写,这种装置就是成组设备啰!你可以自行查一下/dev/sda 看看, 会发现第一个属性为[ b ]喔!
o 字符(character)设备文件:亦即是一些串行端口的接口设备, 例如键盘、鼠标等等!这些设备的特
色就是『一次性读取』的,不能够截断输出。 举例来说,你不可能让鼠标『跳到』另一个画面,而是『连续性滑动』到另一个地方啊!第一个属性为 [ c ]。
5. 资料接口文件(sockets):
既然被称为数据接口文件, 想当然尔,这种类型的文件通常被用在网络上的数据承接了。我们可以启动一
个程序来监听客户端的要求, 而客户端就可以透过这个 socket 来进行数据的沟通了。第一个属性为 [ s ],
最常在/run 或/tmp 这些个目录中看到这种文件类型了。
6. 数据输送文件(FIFO, pipe):
FIFO 也是一种特殊的文件类型,他主要的目的在解决多个程序同时存取一个文件所造成的错误问题。 FIFO
是 first-in-first-out 的缩写。第一个属性为[p] 。

除了设备文件是我们系统中很重要的文件,最好不要随意修改之外(通常他也不会让你修改的啦!),另一个比较有趣的文件就是连结档。如果你常常将应用程序捉到桌面来的话,你就应该知道在Windows 底下有所谓的『快捷方式』。同样的,你可以将 linux 下的连结档简单的视为一个文件或目录的快捷方式。 至于 socket 与 FIFO 文件比较难理解,因为这两个咚咚与程序(process)比较有关系,这个等到未来你了解 process 之后,再回来查阅吧!此外, 你也可以透过 man fifo 及 man socket 来查阅系统上的说明!

**Linux 的文件是没有所谓的『扩展名』的,我们刚刚就谈过,一个 Linux 文件能不能被执行,与他的第一栏的十个属性有关, 与文件名根本一点关系也没有虽然如此,不过我们仍然希望可以藉由扩展名来了解该文件是什么东西,所以, 通常我们还是会以适当的扩展名来表示该文件是什么种类的。底下有数种常用的扩展名:**例如你在网络上下载一个可执行文件,但是偏偏在你的 Linux 系统中就是无法执行!呵呵!那么就是可能文件的属性被改变了!不要怀疑,从网络上传送到你的 Linux 系统中,文件的属性与权限确实是会被改变的喔
1 .sh : 脚本或批处理文件 (scripts),因为批处理文件为使用 shell 写成的,所以扩展名就编成 .sh 啰;
2 *Z, *.tar, *.tar.gz, *.zip, *.tgz: 经过打包的压缩文件。这是因为压缩软件分别为 gunzip, tar 等等的,由于不
同的压缩软件,而取其相关的扩展名啰!
3 *.html, *.php:网页相关文件,分别代表 HTML 语法与 PHP 语法的网页文件啰! .html 的文件可使用网
页浏览器来直接开启,至于 .php 的文件, 则可以透过 client 端的浏览器来 server 端浏览,以得到运算
后的网页结果呢!。

文件名的开头为小数点『.』时, 代表这个文件为『隐藏档』喔!同时,由于指令下达当中,常常会使用到 -option 之类的选项, 所以你最好也避免将文件档名的开头以 - 或 + 来命名啊!
FHS 针对目录树架构仅定义出三层目录底下应该放置什么数据而已,分别是底下这三个目录的定义:
 / (root, 根目录):与开机系统有关;
 /usr (unix software resource):与软件安装/执行有关;
 /var (variable):与系统运作过程有关。
这个 root 在 Linux 里面的意义真的很多很多~多到让人搞不懂那是啥玩意儿。 如果以『账号』的角度来看,所谓的 root 指的是『系统管理员!』的身份, 如果以『目录』的角度来看,所谓的 root 意即指的是根目录,就是 / 啦~ 要特别留意喔!

根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的,同时根目录也
与开机/还原/系统修复等动作有关。 由于系统开机时需要特定的开机软件、核心文件、开机所需程序、
函式库等等文件数据,若系统出现错误时,根目录也必须要包含有能够修复文件系统的程序才行。 因
为根目录是这么的重要,所以在 FHS 的要求方面,他希望根目录不要放在非常大的分区槽内, 因为
越大的分区槽妳会放入越多的数据,如此一来根目录所在分区槽就可能会有较多发生错误的机会。
因此 FHS 标准建议:根目录(/)所在分区槽应该越小越好, 且应用程序所安装的软件最好不要与根目
录放在同一个分区槽内,保持根目录越小越好。 如此不但效能较佳,根目录所在的文件系统也较不
容易发生问题。












不同身份使用者预设的 PATH 不同,默认能够随意执行的指令也不同(如 root 与 dmtsai);
 PATH 是可以修改的;
 使用绝对路径或相对路径直接指定某个指令的文件名来执行,会比搜寻 PATH 来的正确;
 指令应该要放置到正确的目录下,执行才会比较方便;
 本目录(.)最好不要放到 PATH 当中。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
小鬼の小朋友 发布了23 篇原创文章 · 获赞 1 · 访问量 577 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: