Linux下的权限(RWX)详解

平时没太在意Linux权限的问题,今天正好要实现一个只允许写不允许删除其它文件的功能,正好整理一下。
以下结果在Centos7.1上测试通过,如有不正确的地方,请在评论区指出!

r (Read):对于文件,具有读取文件内容的权限;对于目录,具有浏览目录的权限。
w (Write):对于文件,具有新增,修改,删除文件内容的权限;对于目录,具有新建,删除,修改,移动目录内文件的权限(即使文件上没有相应权限也可以执行)。
x (Execute):对文件而言,具有执行文件的权限;对于目录,具有进入目录的权限。

对于目录

  • x 允许cd目录,但不能ls目录.不能创建、删除、移动、重命名文件,但仍然可以编辑目录下具有编辑权限的文件.可以查看任何指定的文件的属性信息,至于内容就要由该文件的权限来决定了。

  • w 单独w没有任何作用,需要结合x使用,wx在r的基础上增加了允许在目录下创建文件,及允许编辑、删除任何文件(当然你得先知道文件名才可以)。不能ls该目录,所以不能在该目录下执行rm -rf *,不允许删除改目录,因为不知道该目录下有没有文件以及有什么文件。

  • r 单独r没有任何作用,需要结合x使用,rx在r的基础上增加了允许ls目录权限,允许编辑有编辑权限的文件权限。但不能在该目录下创建、删除文件及更新没有编辑权限的文件,当然也不能删除这个目录。

文件的权限很简单就不在赘述了

所以如果想允许一个用户只能向目录创建文件,向自己的文件追加信息,就需要把该用户添加到目录的属组中(或者新建一个组作为该目录的属组),并对该目录的属组给予wx的权限。
最稳妥的方案是,单独建一个目录给该用户使用,再把该目录软链接到目标目录。

如果用户对某目录没有访问权限,那么该目录下面的目录即使有权限也不能访问,比如某个非root用户访问其它用户的home目录的目录,即使这个目录有访问权限也不行。

你可能感兴趣的:(Shell)