linux档案属性与目录配置(二)

上传人:第*** 文档编号:32688847 上传时间:2018-02-12 格式:DOCX 页数:30 大小:3.67MB
返回 下载 相关 举报
linux档案属性与目录配置(二)_第1页
第1页 / 共30页
linux档案属性与目录配置(二)_第2页
第2页 / 共30页
linux档案属性与目录配置(二)_第3页
第3页 / 共30页
linux档案属性与目录配置(二)_第4页
第4页 / 共30页
linux档案属性与目录配置(二)_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《linux档案属性与目录配置(二)》由会员分享,可在线阅读,更多相关《linux档案属性与目录配置(二)(30页珍藏版)》请在金锄头文库上搜索。

1、一、 相对路径与绝对路径 绝对路径:路径的写法【一定由根目录 / 写起】 ,例如: /usr/share/doc 这个目录。 相对路径:路径的写法【不是由 / 写起】 ,例如/usr/share/doc 要到/usr/share/man 底下时,可以写成:【cd ./man】这就是相对路径的写法。相对路径意指【相对于目前工作目录的路径!】一般来说,在写程序(shell scripts)的条件下,务必使用绝对路径的写法,因为这个写法绝对不会有问题。二、 目录的相关操作1. cd (变换目录)2. pwd (显示目前所在的目录)3. mkdir (建立新目录)仔细看上面的权限部分,如果没有加上 m

2、 来强制设定属性,系统会使用预设属性。4. rmdir (删除【空】的目录)如果要将所有目录下的东西都删除,就必须使用 rm rf test,不过使用 rmdir 比较不危险。三、 关于执行文件路径的变量:$PATH当我们在执行一个指令的时候,系统会依照 PATH 的设定去每个 PATH 定义的路径下搜寻执行文件,先搜寻到的指令先被执行之。如下,echo $PATH,echo 有【显示、印出】的意思,而 PATH 前面加的$ 表示后面接的是变量,所以会显示出目前的 PATH 了。四、 档案与目录管理1. 档案与目录的检视: ls 范例一:将家目录下的所有档案列出来(含属性与隐藏文件)范例二:承

3、上题,不显示颜色,但在文件名末显示出该文件名代表的类型(type)范例三:完整地呈现档案的修改时间*(modification time)2. cp (复制档案或目录) 在复制时,你必须要清楚地了解到: 是否需要完整地保留来源档案的信息? 来源档案是否为连结档(symbolic link file)? 来源档是否为特殊的档案,例如 FIFO,socket 等? 来源文件是否为目录?范例一:将家目录下的 .bashrc 复制到/tmp 下,并更名为 bashrc范例二:将/var/log/wtmp 复制到 /tmp 底下范例三:复制/etc/ 这个目录下的所有内容到 /tmp 底下范例四:将范例

4、一复制的 bashrc 建立一个边连结档(symbolic link)范例五:若/.bashrc 比/tmp/bashrc 新才复制过来范例六:将范例四造成的 bashrc_slink 复制成为 bashrc_slink_2范例七:将家目录的的 .bashrc 及.bash_history 复制到/tmp 底下3. rm (移除档案或目录)范例一:建立一档案后予以删除范例二:删除一个不为空的目录范例三:删除一个带有 开头的档案4. mv (移动档案与目录,或更名)范例一:复制一档案,建立一目录,将档案移动到目录中范例二:将刚刚的目录名称更改为 mvtest2范例三:再建立两个档案,再全部移动到

5、/tmp/mvtest2 当中5. 取得路径的文件名称与目录名称( basename 与 dirname)6. 档案内容查阅 cat 由第一行开始显示档案内容 tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写 nl 显示的时候,顺道输出行号 more 一页一页地显示档案内容 less 与 more 类似,但是比 more 更好的是,它可以往前翻页 head 只看头几行 tail 只看尾巴几行 od 以二进制的方式读取档案内容1) more在这个程序的动作过程中,有几个键是可以使用的: 空格键(space):代表向下翻一页; Enter :代表向下翻一行; /字符串 :代表在这

6、个显示的内容当中,向下搜寻【字符串】 ; :f :立刻显示出文件名以及目前显示的行数; q : 代表立刻离开 more,不再显示该档案内容;2) 非纯文字文件: od如果我们想查阅非文字文件(非 ASCII 格式的档案)时,比如 /usr/bin/passwd 这个执行档的内容时 ,可以利用 od 这个指令来读取。范例:7. 创建档案时间与建置新档:touch我们在 ls 这个指令的介绍时,有稍微提到每个档案在 Linux 底下都会记录三个主要的变动时间,分别为: Modification time (mtime):当该档案的【内容数据】变更时,就会更新这个时间!内容数据指的是档案的内容,而不

7、是档案的属性。 Status time (ctime ):当该档案状态改变时,就会更新这个时间,像是权限与属性被更改了,都会更新这个时间。 Access time(atime):当【该档案的内容被取用】时,就会更新这个读取时间。如我们使用 cat 去读取/.bashrc,就会更新 atime 了。范例:档案的时间是很重要的,因为,如果档案的时间误判的话,可能会造成某些程序无法顺利地动作。比如我们发现一个档案来自未来(很多时候会有这个问题的,这个我们在安装的时候,提到的 GMT 时间就是那个意思) ,我们就可以用 【touch】这个指令来修改即可。范例一 :新建一个空的档案范例二:将/.bash

8、rc 复制成为 bashrc,假设复制完全的属性,检查其日期范例三:修改案例二的 bashrc 档案,将日期调整为二天前范例四:将上个范例的 bashrc 日期改为 2005/07/15 2:028. 档案与目录的预设权限与隐藏权限由于 Linux 还可以设定其它的系统安全属性,使用 chattr 来设定,而以 lsattr 来查看,最重要的属性就是可以设定其不可修改的特性!让连档案的拥有者都不能进行修改!这个属性相当重要,尤其是在安全机制上面!档案预设权限:umask基本上,umask 就是【目前使用者在建立档案或目录时候的属性默认值】 ,它的指定条件以底下的方式来指定:查阅的方式有两种,一

9、种可以直接输入 umask,就可以看到数字型态的权限设定分数,一种是加入 S(Symbolic)这个参数,就会以符号类型的方式显示出权限了。在预设情况中,档案是没有可执行(x)权限的。因此: 若使用者建立为【档案】则预设【没有可执行(x)项目】 ,亦即只有 rw 这两个项目,也就是最大为 666 分,预设属性如下:-rw-rw-rw- 若使用者建立为【目录】 ,则由于 x 与是否可以进入此目录有关,因此预设为所有权限开放,亦即为 777 分,预设属性如下:Drwxrwxrwx那么 umask 指定的是 【该默认值需要减掉的权限!】 ,因为 r、w 、x 分别是 4、2、1分,以上面的例子来说明

10、,因为 umask 为 022,所以 user 并没有被拿掉属性,不过 group与 others 的属性被拿掉了 2(也就是 w 这个属性) ,那么由于当使用者: 建立档案时:(-rw-rw-rw)- (- - - - - w- -w-)= -rw-r- -r - - 建立目录时:(drwxrwxrwx)- (d - - - -w - -w-)= drwxr xr x我们来测试看看:如果我们希望让 users 同群组的人也可以存取,也就是 -rw rw r - -的模样,umask 应该为 002 才好,我们可以这样设定 umask,直接在 umask 后面输入 002 就好了。这个 uma

11、sk 对于档案与目录的预设权限是很有关系的,这个概念可以用在任何服务器上,尤其是未来在你架设档案服务器,如 SAMBA Server 或者 FTP server 时,都是很重要的观念。9. 档案隐藏属性1、 Chattr (设定档案隐藏属性)范例:2、 Lsattr(显示档案隐藏属性)3、 档案特殊权限: SUID/SGID/Sticky Bit档案的重要权限,就是 rwx 这三个读、写、执行的权限。但是我们的/tmp 权限还有那个/usr/bin/passwd 权限很奇怪。 Set UID会制作出 s 与 t 的权限,是为了让一般使用者在执行某些程序的时候,能够暂时地具有该程序拥有者的权限。

12、比如,我们知道账号与密码的存放档案其实是/etc/passwd 与/etc/shadow。而 /etc/shadow 这个档案的权限是什么呢?是 【-r- - - - - - - -】 。且它的拥有者是 root。在这个权限中,仅有 root 可以【强制】储存,其它人都没法看。但我们使用 dmtsai 这个一般身份使用者去更新自己的密码时,使用的就是/usr/bin/passwd 这个程序,却可以更新自己的密码,这就是 s 这个权限的帮助啦。当 s 这个权限在 user 的 x 时,也就是类似上表的-r-s- -x- - x,称为 Set UID,简称 SUID,这个 UID代表的是 User

13、 的 ID,而 User 代表的则是这个程序(/usr/bin/passwd)的拥有者 root。因此当 dmtsai 这个使用者执行/usr/bin/passwd 时,他就会【暂时】地得到档案拥有人 root 的权限。SUID 仅可用在【二进制档案( binary file) 】上,SUID 因为是程序在执行的过程中拥有档案拥有者的权限,因此,他仅可用于 binary file,不能够用在批次档(shell script)上面。这是因为 shell script 只是将很多的 binary 执行档叫进来执行而已。所以 SUID 的权限部分,还是要看 shell script 呼叫进来的程序的

14、设定,而不是 shell script 本身。当然 SUID 对于目录也是无效的。 Set GID如果 s 的权限是在 group 时,那么就是 Set GID,简称 SGID。它可分两个部分。 档案:如果 SGID 是设定在 binary file 上面,则不论使用者是谁,在执行该程序的时候,他的有效群组(effective group)将会变成该程序的群组所有人(group id) 。 目录:如果 SGID 是设定在 A 目录上,则在该 A 目录内所建立的档案或目录的group,将会是此 A 目录的 group。 SBIT这个目前只针对目录有效,对于档案已经没有效果了。它对于目录的作用是:

15、【在具有 SBit 的目录下,使用者若在该目录下具有 w 及 x 的权限,则当使用者在该目录下建立档案或目录时,只有档案拥有者与 root 才有权限删除】 。举例来说,/tmp 本身的权限是【drwxrwxrwx】 ,在这样的权限下,任何人都可以在/tmp 内新增、修改档案,但仅有该档案/目录建立者与 root 能够删除自己的目录或档案。 我们可以做个简单的测试: 以 root 进入/tmp 当中: touch test,并且更改 test 权限成为 777; 以一般使用者登入,并进入/tmp; 尝试删除 test 这个档案!4、 SUID/SGID/SBIT 权限设定 4 为 SUID 2

16、为 SGID 1 为 SBIT假设要将一个档案属性改为【-rwsr-xr-x 】时,由于 s 在使用者权限中,所以是 SUID,因此在原先的 755 之前还要加上 4,也就是:【chmod 4755 filename】来设定。此外,还有大 S 与大 T 的产生。10. 档案类型:file这个指令可以知道某个档案的基本数据类型11. 档案的搜寻:which,whereis,locate,find通常我们都是先使用 whereis 或者 locate 来检查,如果真的找不到,才以 find 来搜寻,因为 whereis 与 locate 是利用数据库来搜寻数据,所以相当地快速,而且并没有实际的搜寻硬盘,比较省时间。 Which (寻找【执行档】 )这个指令是根

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号