Linux 的档案权限与目录配置

来源:互联网 发布:类似淘宝联盟可以赚钱 编辑:程序博客网 时间:2024/05/10 10:09
Linux 用户身份与群组记录的档案

在我们Linux系统当中,默认的情况下,所有的系统上的账号与一般身份使用者,还有那个root的相关信息, 都是记录在/etc/passwd这个档案内的。至于个人的密码则是记录在/etc/shadow这个档案下。 此外,Linux所有的组名都记录在/etc/group内!这三个档案可以说是Linux系统里面账号、密码、群组信息的集中地!


第一个字符代表这个档案是『目录、档案或链接文件等等』:
o 当为[ d ]则是目录
o 当为[ - ]则是档案
o 若是[ l ]则表示为连结档(link file);
o 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
o 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次怅读取装置)。

接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

o 第一组为『档案拥有者的权限』;
o 第二组为『同群组的权限』;
o 第三组为『其他非本群组的权限』。


改变所属群组, chgrp



改变档案拥有者, chown



改变权限, chmod

 数字类型改变档案权限

Linux档案的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4 

w:2 

x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:

 owner = rwx = 4+2+1 = 7 

group = rwx = 4+2+1 = 7 

others= --- = 0+0+0 = 0


 符号类型改变档案权限

还有一个改变权限的方法呦!从之前的介绍中我们可以发现,基本上就九个权限分别是(1)user (2)group (3)others三种身份啦!那么我们就可以藉由u, g, o来代表三种身份的权

限!此外, a 则代表 all 亦即全部的身份!那么读写的权限就可以写成r, w, x啰!也就是可以使用底下的方式来看:




 权限对档案的重要性

 r (read):可读取此一档案的实际内容,如读取文本文件的文字内容等;
 w (write):可以编辑、新增或者是修改该档案的内容(但不含删除该档案);
 x (eXecute):该档案具有可以被系统执行的权限。

Windows底下一个档案是否具有执行的能力是藉由『 扩展名 』来判断的, 例如:.exe, .bat, .com 等等,但是在Linux底下,我们的档案是否能被执行,则是藉由是否具有『x』这个权限来决定的!跟档名是没有绝对的关系的!

至于最后一个w这个权限呢?当你对一个档案具有w权限时,你可以具有写入/编辑/新增/修改档案的内容的权限, 但并不具备有删除该档案本身的权限!对于档案的rwx来说, 主要都是针对『档案的内容』而言,与档案档名的存在与否没有关系喔!因为档案记录的是实际的数据嘛!


 权限对目录的重要性

 r (read contents in directory): 表示具有读取目录结构列表的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据。 所以你就可以利用 ls 这个命令将该目录的内容列表显示出来!
 w (modify contents of directory): 这个可写入的权限对目录来说,是很了不起的! 因为他表示你具有异动该目录结构列表的权限,也就是底下这些权限:
o 建立新的档案与目录;
o 删除已经存在的档案与目录(不论该档案的权限为何!)
o 将已存在的档案或目录进行更名;
o 搬移该目录内的档案、目录位置。
总之,目录的w权限就与该目录底下的文件名异动有关就对了啦!
 x (access directory): 目录不可以被执行,目录的x代表的是用户能否进入该目录成为工作目录的用途! 所谓的工作目录(work directory)就是你目前所在的目录!(不具有x的权限, 并不能切换到此目录内)


Linux档案扩展名:

基本上,Linux的档案是没有所谓的『扩展名』的,我们刚刚就谈过,一个Linux档案能不能被执行,与文件名根本一点关系也没有。不过,可以被执行跟可以执行成功是不一样的。x代表这个档案具有可执行的能力, 但是能不能执行成功,当然就得要看该档案的内容啰。

数种常用的扩展名:

 *.sh : 脚本或批处理文件 (scripts),因为批处理文件为使用shell写成的,所以扩展名就编成 .sh 啰;
 *Z, *.tar, *.tar.gz, *.zip, *.tgz: 经过打包的压缩文件。这是因为压缩软件分别为 gunzip, tar 等等的,由于不同的压缩软件,而取其相关的扩展名啰!
 *.html, *.php:网页相关档案,分别代表 HTML 语法与 PHP 语法的网页档案啰! 


Linux目录配置

FHS(Filesystem Hierarchy Standard)依据文件系统使用的频繁与否与是否允讲使用者随意更劢, 而将目录定义成为四种交互作用的形态,用表格来说有点像底下这样:



 根目录(/) 的意义与内容:

根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的, 同时根目录也与开机/还原/系统修复等动作有关。 由于系统开机时需要特定的开机软件、核心档案、开机所需程序、 函式库等等档案数据,若系统出现错误时,根目录也必项要包含有能够修复文件系统的程序才行。 因为根目录是这么的重要,所以在FHS的要求方面,他希望根目录不要放在非常大的分割槽内, 因为越大的分割槽妳会放入越多的数据,如此一来根目录所在分割槽就可能会有较多发生错误的机会。 

因此FHS标准建议:根目录(/)所在分割槽应该越小越好, 且应用程序所安装的软件最好不要与根目录放在同一个分割槽内,保持根目录越小越好。 如此不但效能较佳,根目录所在的文件系统也较不容易发生问题。 有鉴于上述的说明,因此FHS定义出根目录(/)底下应该要有底下这些次目录的存在才好:





除了这些目录的内容之外,另外要注意的是,因为根目录与开机有关,开机过程中仅有根目录会被挂载, 其他分割槽则是在开机完成之后才会持续的进行挂载的行为。就是因为如此,因此根目录下与开机过程有关的目录, 就不能够与根目录放到不同的分割槽去!那哪些目彔不可与根目录分开呢?有底下这些:
 /etc:配置文件
 /bin:重要执行档
 /dev:所需要的装置档案
 /lib:执行档所需的函式库不核心所需的模块
 /sbin:重要的系统执行文件



原创粉丝点击