Linux下目录的可执行属性(转载)
大家对Linux下文件的权限属性比较关注。但是对目录的权限属性关注的相对较少,尤其是对目录的可执行权限属性。但是目录的可执行属性对于文件操作有重要的影响。我在工作中经常遇到同事对目录的可执行属性不了解而“撞妖”的情况,所以本文进行一下简单的描述。
????? 在文档中目录的可执行属性被称为“搜索位”,非常费解。搜索位的意思是只有目录具有了可执行权限,你才能访问目录中的文件(根据文件的权限属性来读写)。如果你没有设置目录的可执行属性,你是不能访问(读写)目录中的文件的。在工作中经常遇到同事,读写一个文件失败,错误码是没有权限,经过仔细检查他非常确认他对这个文件有权限,就认为“撞妖”了。“妖怪”就是他对包含该文件的目录没有可执行权限。
???? 请看下面的实验:
???? 创建了一个test目录,当前用户对其拥有可执行属性。可以在对目录中的文件hello进行读写(echo是写操作,cat是读操作;当然这里涉及到一个创建文件问题,这个需要目录的写权限,这里不进行叙述了,请自行查资料了解目录的读写权限作用)。
???? 把test目录的可执行属性去掉,发现对test目录中的hello文件既没有读权限也没有写权限了。
???? 总结一下,如果你要访问(读写)一个文件,需要确保文件路径中,每一个目录你都具有可执行的权限。举个例子来说。比如:想读写/mnt/cdrom/file,那么你需要确认你对/mnt,/mnt/cdrom都具有可执行权限,当然file你也需要有相应的权限才能操作。
???? 以后大家一定要关注目录的可执行属性,尽量少“撞妖”。