单元五实验 文件访问权限 估计用时: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、在一个传统UNIX系统上,归档文件并压缩归档的步骤是分开的,就像你前面所做的那样。 在一个Linux 系统上,使用GNU tar 命令,tar 文件可以在建立文件的同时自动地进行一系列不同的压缩。试试下面的步骤。tar 命令会输出一些错误信息,因为非特权用户在/etc 目录下对一些文件没有读权限。在本实验中,可以忽略。 $ rm confbackup.tar.bz2 $ tar cfz test1.tgz /etc $ tar cfj test2.tbz /etc $ file test* 完成:你导入的文件已经在/tmp 目录下安全地归档、压缩并备份了。 实验3答案: 2、find /var -user root -and -group mail 2>/dev/null 3、find / -not -user root -and -not -user bin -and -not -user student -ls 2>/dev/null 4、find /usr/bin -size +1000000c -ls 5、find /etc/mail -exec file {} \; 6、find /tmp -user student -ls 2>/dev/null 7、find /tmp -user student -and -mtime +1 -and -type f -ls 2>/dev/null 8、find /tmp -user student -and -mtime +1 -and -type f -ok rm {} \; 单元七实验 bash shell 估计用时:45分钟
[1] [2] 下一页
(出处:http://www.sheup.com)
上一页 [1] [2]