目录和常规文件一样使用相同的权限位进行标识,但是它们的翻译不同。
目录的读权限允许用户使用该权限列出目录内容。
写权限意味着用户使用该权限能够在目录 中创建或者删除文件。
执行权限允许用户输入目录并访问任意子目录。没有执行权限,目录下的文件系统对象就是不可访问的。
没有读权限,目录下的文件系统对象 在目录清单下就是不可见的,但是如果知道磁盘上对象的完整路径,这些对象仍是可访问的。
目录与普通文件的权限意义并不相同,这是因为目录与文件所记录的数据内容不相同导致。
对于普通文件的权限:
r(read): 允许读权限,比如可以使用cat <file name>之类的命令来读取某个文件的内容
w(write): 允许写权限,表示你可以编辑和修改某个文件的内容
x(execute): 允许执行权限,通常指可以运行的二进制程序文件或者脚本文件。
Linux上不是通过文件后缀名来区分文件的类型。 在Linux中,文件能够被执行是由"x"这个权限来决定的,而跟文件的扩展名(主要依靠file命令判断)没有半毛钱关系。不过拥有可以执行的能力, 与能否执行成功,是两码子事儿。
但是对于目录的权限位则很容易混淆,这里要注意区分:
对于目录的权限:
r (read contents in directory):读取目录里面的内容。可以使用 ls 命令将目录内容列举 ,所以当你具有读取一个目录的权限时,表示你可以查询该目录下的文件。
w (modify contents of directory):编辑目录里面的内容。
拥有更改该目录结构列表的权限:
主要包括 :
1、创建新的文件与目录
2、删除目录下面的文件与目录(无论对该文件的权限是什么都可以操作)
3、对目录里面的文件与目录重命名
4、移动目录里面的文件与目录的位置
x (access directory):代表的是用户能否进入该目录成为工作目录(cd 命令)。
注意:目录要同时具有读权限和执行权限才可以打开,而一个目录要有写权限才允许在其中创建其它文件,这是因为目录文件实际保存着该目录里面的文件的列表等信息
要编辑文件内容,那么必须对该文件拥有 rw 权限。
要编辑目录内容,那么必须对该目录拥有 wx 权限。
LINUX判断文件类型:(好像底层是依靠magic number检测法)
Linux的file命令用来通过探测文件内容判断文件类型,使用权限的所有的用户。file命令可以知道某个文件是二进制可执行文件还是Shell Script脚本文件,或者是其他格式, file能识别的文件包括目录, shell脚本, 英文文本,二进制可执行文件, C语言源文件, 文本文件, DOS可知性文件等等。
file命令的格式是 file 【option】 文件名
options的主要参数有
-v 在标准输出后显示版本信息,并且推出
-z 探测压缩过的文件类型
-L 允许符合连接
-f name 从文件namefile中读取要分析的文件名列表