当前位置:操作系统 > Unix/Linux >>

新手必读:RHCE课堂实验笔记(2)

单元五实验

  文件访问权限

  估计用时:30分钟

  目标:熟悉多个修改文件权限命令的语法和应用,并可组合命令以完成一般的任务。

  实验前准备:一台安装好的系统,其上有student 帐号。

  实验1:定义文件的访问权限的实践

  任务:

  1、写下文件权限的字串(类似rwxr-xr-x):

  664:_______________________

  755:_______________________

  000:_______________________

  711:_______________________

  700:_______________________

  777:_______________________

  555:_______________________

  705:_______________________

  111:_______________________

  600:_______________________

  731:_______________________

  2、一个文件权限为755,哪条命令可以将其权限改为r-xr--r--?

  3、你刚从Internet上下载了一个值得信任的执行文件。在你运行它之前你必须做什么?写下两种不同的途径。

  4、你在之后的单元中将会学到进程(系统中运行的程序)是被用户和用户组所拥有的,就像文件和目录一样。一个进程只有当它的拥有者和拥有者组拥有相应的权限时,它才可以读、写并执行一个文件或目录。

  Red Hat Linux 系统通常配置成由用户apache 和组apache 运行apache Web服务器进程。

  在系统安装的时候该用户和组已经作为apache 的一部分已经建立。

  假设你有一个目录结构 /home/student/archive 里面有许多的文件和目录,都被设置为权

  限700。你想将archive 目录在Internet 上设置为可访问的,但是当前的许可并不允许web服

  务器(以用户apache 运行)访问文件。使用chmod 命令,你如何用一条命令改变文件的访问权限?

  实验2:使用umask 设置新建文件的默认访问权限。

  任务:

  1、登录

  2、查看当前的umask

  $ umask

  3、创建几个文件和目录,看看它们的访问权限

  $ touch umtest1

  $ touch umtest2

  $ mkdir umtestdir1

  $ ls -ld um*

  4、改变你的umask 为一个更安全的设置,然后新建文件与目录,再比较一下访问权限

  $ umask 066

  $ touch umtest3

  $ touch umtest4

  $ mkdir umtestdir2

  在查看访问权限之前,你觉得它们的权限会是多少?

  $ ls -ld um*

  单元六实验

  Linux 文件系统基础

  估计用时:1小时30分钟

  目标:形成对Linux 文件系统的更充分的理解,包括:建立和使用link,使用mtools 包以处理DOS 文件系统,使用slocate 和find,并将文档打包和压缩。

  实验前准备:一台装有Red Hat Linux 系统的机器,你在实验2中需要一张空白软盘。

  实验1:建立并使用link

  任务:

  1、在早先的实验中,你应该拷贝了/usr/share/dict/words 到你的帐号――student 的home目录中,并命名为words。当时,这样做的原因是为了使你访问这个文件更简单。现在,我们使用link 来达到同样的效果。

  2、为了避免原来的文件和拷贝文件的混淆,我们删除words 文件的拷贝。

  $ cd

  $ rm words

  3、如果这时候你还没有意识到的话,你早些使用的/usr/share/dict/words 实际上是一个soft link。列出/usr/share/dict,看看link 和它的指向:

  $ ls -l /usr/share/dict

  total 404

  -rw-r--r-- 1 root root 409305 Apr 3 10:29 linux.words

  lrwxrwxrwx 1 root root 11 Apr 20 17:33 words -> linux.words

  a、你如何知道它是一个soft link?

  b、为什么文件的大小是11字节?

  c、words对所有用户开放所有的访问权限。这会对linux.words 产生什么样的影响?除了root用户能通过这个link 向linux.words 写数据吗?

  4、再次列出文件,这次显示它们所对应的inode。它们是否拥有相同的inode?

  $ ls -i /usr/share/dict

  5、现在在你的home 目录中建立一个symbolic link 和一个hard link,指向

  /usr/share/dict/linux.words:

  $ ln -s /usr/share/dict/linux.words soft

  $ ln /usr/share/dict/linux.words hard

  6、测试你的新link 指向的数据:

  $ head hard soft

  7、用下面的命令测试你建立的link,并回答下列问题:

  $ ls -il hard soft

  $ stat hard soft

  写出文件hard 的大小________,和soft 的大小_________。

  hard 确实使用的数据块________,soft确实使用的数据块__________。

  你如何解释这两个文件在数据块数上的不同?

  hard 的link 数________,soft 的link 数__________。

  hard 的 UID和GID__________,soft的_____________。

  文件hard 由root 所拥有,并对其他用户只开放读权限。student 用户是否可以删除这个新建的文件?为什么?

  8、挑战:

  a、你能建立一个symbolic link 指向一个不存在的文件吗?在这种情况下ls 命令是否给出任何提示?

  b、你能建立一个hard link 指向一个不存在的文件吗?为什么?

  c、你能建立一个hard link 指向一个soft link 吗?如果你这样做的话会出现什么情况?

  d、在建立了几个hard link 之后,你如何找出“真正”的文件?这个问题有意义吗?(换句话说,有没有比你建立hard link 更“真实”的文件?)

  实验2:使用mtools 包(省略)

  实验3:使用find

  任务:

  设计并执行满足下面条件的find 命令。当你执行时递归搜索到一些你没有读权限的子目录时

  你可能会遇到一些"Permission denied"消息,别去管它。你也可以在末尾加上2> /dev/null来消除这些错误消息的影响。

  第一个问题的答案已经给出,执行它,并把其他的完成。你可能需要翻看man page,并记住使用/string 来搜索你需要的字串。如果你哪里卡住了,你可以翻看在实验4后列出的答案。

  1、列出在/var/lib下games 用户拥有的所有文件

  $ find /var/lib -user games 2> /dev/null

  2、列出在/var 下root 用户和mail 组所拥有的所有文件

  3、以"ls -l"风格列出在系统上所有不被root 或者bin 或者student 用户所拥有的文件

  4、以"ls -l"风格列出/usr/bin 下所有大于一百万个字符的文件

  5、对/etc/mail 下所有的文件执行file 命令

  6、以"ls -l"风格列出/tmp 下为student 用户所拥有的“普通”文件(regular files)

  7、添加上面的命令使得以"ls -l"风格列出/tmp 下为student 用户所拥有的“普通”文件

  (regular files),并且它们的修改时间在一天之前

  8、改变上面的命令使得删除在/tmp 下为stduent 用户所拥有的“普通”文件(regular files),并且它们的修改时间在一天之前。并且在每个文件删除之前都提示是否删除。

  实验4:归档和压缩

  假设:

  你的主硬盘在你每次使用它的时候发出可怕的声音,你估计它快完蛋了并且会将你珍贵的资料一起带入坟墓。考虑到上次的系统备份是2年半之前,你决定备份一些对于你来说至关重要的文件。/tmp 目录是位于另外一个物理硬盘上的分区,所以你会暂时将你的文件备份到那里。

  (然而,tmpwatch 进程会将/tmp 目录中10天没有访问过的文件删除,你最好不要在那里把你的重要文件存放过长时间。)

  任务:

  1、使用find 查找/home 下所有被student 所拥有的文件,然后将这些文件名传给tar 并把它们存储在/tmp 中。

  $ find /home -user student -exec tar rvf /tmp/backup.tar {} \;

  2、将/etc 内的内容存储在/tmp 中的另外一个tar 文件中:

  $ tar cvf /tmp/confbackup.tar /etc

  3、列出两个新文件并记录它们的大小:

  $ ls -lh /tmp/*.tar

  backup.tar 文件的大小_________。

  confbackup.tar 文件的大小_________________。

  4、使用gzip 来压缩你的归档文件。然后记录新的文件大小:

  $ cd /tmp

  $ gzip *.tar

  $ ls -lh *tar*

  backup.tar.gz 文件的大小______________。

  confbackup.tar.gz 文件的大小__________________。

  5、解压这些文件,并重新将它们用bzip2压缩,并记录新的文件大小:

  $ gunzip *.gz

  $ ls -lh *tar

  $ bzip2 *tar

  $ls -lh *tar*

  backup.tar.bz2 文件大小________________。

  confbackup.tar.bz2 文件大小_________________。

  6、在一个
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,