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,