日期:2014-05-16  浏览次数:20725 次

Linux的文件属性和目录配置
Linux的帮助命令是   man 命令名
在我们 Linux 系统当中,预设的情况下,所有的系统上的帐号与一般身份使用者,还有那个 root 的相关资讯,都是记录在 /etc/passwd 这个档案内的。至于密码则是记录在 /etc/shadow 这个档案下。
此外, Linux 所有的群组名称都纪录在 /etc/group 内!这三个档案可以说是 Linux 系统里面帐号、密码、群组资讯的集中地棉!不要随便删除这三个档案啊!
文件权限与属性是学习 Linux 的一个相当重要的关卡
以 root 的身份登入 Linux 之后,下达『ls -al 』命令,列出所有的文件或目录的详细信息
ls 是『list』的意思,与在早期的 DOS 年代的指令 dir 类似功能。 而参数『-al』则表示列出所有的档案 ( 包含隐藏档,就是档名前面第一个字元为 . 的那种档案 )
第一栏代表这个档案的属性∶-rwxrwx---共十个属性,
第一个属性代表这个档案是『目录、档案或连结档等等』∶
当为[ d ]则是目录,例如上表的第 11 行;
当为[ - ]则是档案,例如上表的第 5 行;
若是[ l ]则表示为连结档(link file);
若是[ b ]则表示为装置档里面的可供储存的周边设备;
若是[ c ]则表示为装置档里面的序列埠设备,例如键盘、滑鼠。

接下来的属性中,三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(excute)∶
第一组为『拥有人的权限』,以第 5 行为例,该档案的拥有人可以读写,但不可执行;
第二组为『同群组的权限』;
第三组为『其他非本群组的权限』。

需要特别留意的是 x 这个标号,一个目录,而且只有 root 可以读写与执行
因为 x 与 目录 的关系相当的重要, 如果您在该目录底下不能执行任何指令的话,那么自然也就无法进入了,因此, 请特别留意的是,如果您想要开放某个目录让一些人进来的话, 请记得将该目录的 x 属性给开放在 Windows 底下一个档案是否具有执行的能力是藉由『 附档名 』来判断的, 例如∶.exe, .bat, .com 等等,但是在 Linux 底下, 我们的档案是否能执行,则是藉由是否具有 x 这个属性来决定的!所以,跟档名是没有绝对的关系的!

第三栏表示这个档案(或目录)的『拥有人』。
第四栏表示拥有人的群组。
第五栏为这个档案的容量大小。
第六栏为这个档案的建档日期或者是最近的修改日期
第七栏为这个档案的档名, 如果档名之前多一个『 . 』,则代表这个档案为『隐藏档』
复制文档命令  :cp 源文档 目的文档
如何修改一个档案的权限呢?
什么时候要使用 chown 或 chgrp 呢?!或许您会觉得奇怪吧?!是的,确实有时候需要变更档案的拥有者的, 最常见的例子就是在 copy 档案给你之外的其他人时
chgrp ∶改变档案所属群组,格式:   chgrp [-r] 群组名  文件或目录名
要改变成为的群组名称必须要在 /etc/group 里面存在的名称才行,否则就会显示错误!
chown ∶改变档案所属人 ,格式:chown [-r] 账号名称 文件或目录名
使用者必须是已经存在系统中的,也就是在 /etc/passwd 这个档案中有纪录的使用者名称才行改变。
如果要连目录下的所有次目录或档案同时更改档案拥有者的话,直接加上 -R 的参数即可!
chmod ∶改变档案的属性、 SUID 、等等的特性,格式:chmod [-r] xyz 文件或目录名
(1)数字类型改变档案权限
Linux 档案的基本属性就有九个,分别是 owner/group/others 组别的 read/write/excute 属性, 先复习一下刚刚上面提到的资料∶
-rwxrwxrwx
这九个属性是三个三个一组的!其中,我们可以使用数字来代表各个属性,各属性的对照表如下∶ r:4w:2x: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
所以等一下我们设定属性的变更时,该属性的数字就是 770 啦!
(2)符号类型改变档案权限
九个属性分别是(1)user (2)group (3)others 三群啦!那么我们就可以藉由 u, g, o 来代表三群的属性!此外, a 则代表 all 亦即全部的三群!
格式:        u
g      +(加入)
chmod o -(除去)   rwx 档案或目录
a =(设定) 
利用 chmod a+x filename ,就可以让该程式拥有执行的权限了。 是否很方便?
那个 r, w, x 对目录是什么意义呢?简单的说∶
r (read contents in directory)∶ 表示具有读取目录结构清单的权限,所以当您具有读取 (r) 一个目录的权限时, 您就可以利用 ls 这个指令将该目录的内容列表显示出来!
w (modify contents of directory)∶ 这个可写入的权限对目录来说,是很了不起的! 因为他表示您将具有异动该目录结构清单的权限,也就是底下这些权限∶
建立新的档案与目录;
删除已经存在的档案与目录(不论该档案是属于谁的!)
将已存在的档案或目录进行更名;
搬移该目录内的档案、目录位置。
所以说,如果您是一般身份使用者,例如鸟哥的帐号 dmtsai ,那么在 /home/dmtsai 这个家目录内, 无论是谁 (包括 root) 建立的档案,无论该档案属于谁,无论该档案的属性是什么, dmtsai 这个使用者都『有权力将该档案删除』的喔!
x (access directory)∶ 这个在上头我们已经稍微提过了,这个 x 与能否进入该目录有关呢!
Linux 的档案种类主要有底下这几种∶
1,正规档案 (regular file )∶ 就是一般我们在进行存取的类型的档案,在由 ls -al 所显示出来的属性方面,第一个属性为 -,如果是目录,第一个为d。按照内容分为:
(1)纯文字档(ASCII)∶就是文本文档,可以用cat命令显示文件内容
(2)二进位档(binary)∶如一些可执行文件,举例来说,刚刚下达的指令 cat 就是一个 binary file 。
(3)资料格式档(data)∶ 有些程序在运作的过程当中会读取某些特定格式的档案
举例来说,我们的 Linux 在使用者登入时,都会将登录的资料记录在 /var/log/wtmp 那个档案内,该档案是一个 data file ,他能够透过 last 这个指令读出来! 但是使用 cat 时,会读出乱码
2,目录 (directory)∶就是目录棉~第一个属性为 [ d ],例如 [drwxrwxrwx]。
3,连结档 (link)∶就是类似 Windows 底下的捷径啦!第一个属性为 [ l ], 例如 [lrwxrwxrwx] ;
4,设备与装置档 (device)∶与系统周边及储存等相关的一些档案, 通常都集中在 /dev 这个目录之下!通常又分为两种∶(1)区块 (block) 设备档 ∶就是一些储存资料, 以提供系统存取的周边设备,简单的说就是硬碟啦!例如你的一号硬碟的代码是 /dev/hda1 等等的档案啦!第一个属性为 [ b ];
(2)字元 (character) 设备档 ∶亦即是一些序列埠的周边设备, 例如键盘、滑鼠等等!第一个属性为 [ c ]。
Linux 的档案是没有所谓的『附档名』(即文件后缀名)的,因为由前面的说明我们可以知道, 一个 Linux 档案能不能被执行,与他的第一栏的十个属性有关, 与档名根本一点关系也没有。虽然没有用,但通常我们还是会以适当的档名来表示该档案是什么种类的。
如*.sh ∶ 批次档 ( scripts ),因为批次档为使用 shell 写成的,所以附档名就编成 .sh 棉;
*Z, *.tar, *.tar.gz, *.zip,