实验所属系列:Linux操作系统
预备知识
本实验需要登陆系统后,请使用“useradd heetian”创建一个用户,以便后面的实验。
1、让用户进入某个目录成为工作目录的基本权限:
可使用的指令:例如cd等改变工作目录的命令
目录所需权限:用户对这个目录至少需要具有x权限
额外需求:如果用户想要在这个目录内利用ls列出档案,则用户对此目录还需要r的权限
2、用户在某个目录内读取一个文件的基本权限:
可用命令:例如cat,more,less等
目录所需权限:用户对该目录至少需要具有x权限
文件所需目录:使用者对档案至少需要具有 r 的权限才行
3、让使用者修改一个文件的权限:
可使用的指令:如vim编辑器等
目录所需权限:用户对该目录至少具有x权限
文件所需权限:使用者对该文件至少具有r,w权限
4、让一个使用者可以建立一个文件的权限:
目录所需权限:用户对该目录至少需要w,x权限
5、让用户进入某个目录并执行该目录下的某个命令所需权限:
目录所需权限:该用户在该目录至少需要x权限
文件所需权限:使用者对该文件至少需要x权限。
实验目的1)掌握文件查看命令:file
2)掌握命令位置查找之which命令
3 ) 掌握如何就行档案搜索
实验步骤一利用file命令查看那文件的类型
命令:file
file 文件名:查看adjtime是个什么类型的文件。(文本文件)
file –b :列出辨识结果时,不显示文件名称。
file -L :直接显示符号连接所指向的文件的类别。
也许你会发现有这样的文件:l 开头的,就是链接文件了,我们试试 -L参数吧,可以直接显示链接文件所指的文件的类型呢!!
更多用法:Linux file命令 | 菜鸟教程 (runoob.com)
linux命令搜寻之which命令
命令:which
which 文件:显示文件的绝对路径。
which -a:显示所有匹配的可执行的路径。将PATH中可以找到的指令都列出来,而不是第一个被找到的名称。
我们来做个测试:
当我们用root用户的时候,为什么能找到ifconfig ,但是用普通用户就找不到了呢?
是这样的,which是根据用户的PATH变量设定的路径去找的。echo $PATH就能查看当前用户的PATH变量设定了,以后会详细讲这个东西的:
实验步骤二
档案查找命令
命令之一:whereis
whereis [-bmsu] 目录或文件名:查找文件。
该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。
该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。
-b:只找binary(二进制)格式的文件
-m:只找在说明文件manual路径下的文件
只找跟passwd命令相关的帮助文件:
-s:只找source来源档案
-u:搜索不在上述三个项目当真的其他特殊档案
我们发现whereis搜索非常快速,因为它是基于数据库的啦。这是因为linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用 whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通过遍历硬盘来查找,效率自然会很高。
但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。
命令之二:locate
语法:locate [-ir] keyword
-i :忽略大小写
-r :使用正规运算式做寻找的条件
locate 使用很简单,只要后面跟关键字就行了,搜索起来也非常快速,因为它也是基于数据库的。
搜索所有有关passwd的档案,出错了。为什么呢?按照提示,说没有数据库,刚刚我们说locate是基于数据库的,没有数据库怎么行呢?我们执行updatedb 修复一下,再次搜索:
实验步骤三
命令之find
语法:find [路径] [option] [action]
解释:find的参数有很多,我们介绍简单一点的,更多用法记得man find 。
与时间相关的选项:-atime,-ctime和-mtime,以-mtime说明:
-mtime n :n 为数字
-mtime +n :n天之前(不含n天本身)
-mtime -n:n天之内(含n天本身)
-nwer file:file为一个存在的文件,列出比file更新的文件。
find相关的时间的意义:
+4代表大于等于5天前
-4:代表等于4天内
4:代表4-5那一天。
例1:将过去系统上面24小时内有更改(mtime)的内容列出来:
数字0 代表当前时间,所有代表从现在到24小时前
按名称查找
find [路径] -name 名称
找出 /etc/下 名为passwd的文件
分析与思考
1、请说明whereis和find有何区别?它们各自的优缺点是什么?
答:和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。
但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。
2、请使用man page,如何使用find 命令查找/etc下大于500K的文件?
答:
3、让一个普通用户heetian能够进行cp /dir1/file1 /dir2的命令时,请说明dir1,file1,dir2的最小所需权限为何?
对于dir1最低肯定需要能够进入的权限x
对于file1肯定要有能读取的权限r
对于dir2肯定要有能创建的权限w以及能进入的权限x