Linux下目录和文件的权限


在Linux系统内文件有三种身份(owner、group、others),而且每种身份有三种权限(r(read)、w(write)、x(execute)),我们可以使用chmod、chown、chgrp去修改这 些权限,也可以用ls -l查看他们的权限与属性,那么这些权限对于一般文件和目录文件有什么不同呢。

文件的权限

一般文件可以记录数据。计算机中文件有一般文本文件(txt、word等)、图片、可执行文件(exe)、等等,那么权限对于这些文件来说有什么意义? 如下:
1. 读r(read): 可以读取此文件的实际内容,比如文本文件的文字内容等。
2. 写w(write): 可以编辑、修改文件的内容(不包括删除该文件)。
3. 执行x(execute): 代表该文件有被系统执行的权限。


如图创建一个test.c文件,默认的权限为:拥有者和用户组都有读、写权限,其它只有读的权限。


我们用编辑器给其写入内容,并且用cat读取它的内容发现都没问题(此处及以下皆以拥有者的身份操作)。


去掉拥有者的r权限,当再次cat它时,终端提醒我们权限不够。


去掉拥有者的w权限,当用编辑器给它写内时,编辑器提醒权限不足(当然你可以强制写入)。


对于文件的x权限,我们先生成一个a.out文件,然后执行它,没有问题。


但是去掉它的x权限后,当我们想执行它时,发现权限不够。

通过以上,我们大概可以总结出关于文件权限的几个特点
1. 读文件(用cat显示),必须要有该文件的r权限。
2. 对文件写入内容(编辑、修改内容),需要文件的w权限(在某些情况下没有“写“权限时,可以强制写入)。
3. 一个文件能否执行和你是否拥有该文件的x权限有关,这一点和windows有所区别,在windows下,一个文件的执行能力通过“扩展名”来判断,如: .exe, .html等。
4. 文件中记录了数据,对于文件的读写权限,主要是针对文件的内容而言,如cat显示文件的内容,编辑修改文件的内容。

目录的权限

目录主要要记录文件名列表,目录和文件有着紧密的联系,那么目录的r、w、x三种权限有什么意义呢?


先创建一个默认权限为rwx rwx r-x的目录document,对它进行cd、ls、mkdir、rm等操作都没问题,去掉它的r权限之后,我们企图显示该目录的文件列表,发现做不到,原因是权限不够。


再次去掉该目录的r权限,进入该目录,当创建一个文件(或目录)时,终端提示权限不够,不仅如此,它还不允许我们对文件进行删除、移动、重命名操作。


当去掉该目录的x权限后,我们无法进入该目录。

对于目录,我们如果把它比作一个大房子,里面的东西比作桌子椅子(大房子里也可以套小房间,不是吗?)等等话,那么x权限则关系到我们能否进入该房子,而w权限关系到我们能否挪动该房子里的东西,比如移走桌子,添加椅子到里面等等,而r权限则和我们能否看到房子里的东西有关,没有r权限就相当于我们在房子里闭着眼睛,只是看不到里面的东西,但你仍然可以挪动。

通过以上我们了解到
1. 拥有目录的r权限,我们可以通过ls查看该目录下的文件(目录)名列表信息。
2. w权限对于目录来说很强大,拥有目录的w权限意味着你可以:创建新的文件与目录、删除已经存在的文件和目录(不论该文件你的权限如何)、重命名已存在的文件和目录、移动文件和目录的位置。
3. 目录的x权限代表着你能否进入该目录成为工作目录的用途,所谓工作目录就是你当前所在的目录。举个例子:当你登录Linux系统时,你所在的主文件夹就是你当下的工作目录。

成于坚持,败于止步!

【作者:果冻 http://blog.csdn.net/jelly_9

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...