Linux系统文件权限体系详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统文件权限体系详解相关的知识,希望对你有一定的参考价值。

  准备工作:先简单了解Linux文件权限  

  在Linux系统中,ls -l 命令可以查看文件的权限,如

    [[email protected] Test]$ ls -l a
    -rw-rw-r--. 1 zhaohuizhen zhaohuizhen 121 Oct 14 20:26 a

  文件a权限就在第一列,第一位-,代表文件a时普通文件。后面9为就是文件权限,rw-rw-r--,前三位对应文件属主权限,中间三位代表属组权限,最后三位代表其它用户权限。

  r 读权限 w写权限 x执行权限 -无任何权限。

  

  1)改变权限属性命令chmod

  chmod可以用来改变文件或目录权限的命令,但只有文件的属主和超级用户root才有这种权限。通过chmod改变文件或目录的权限有两种办法:一是通过权限字母和操作符表达式的方法来设置权限;另一种是通过使用数字方法来设置权限。

  a 数字权限法

    chmod [数字组合] 文件名

    -R 可以改变某个目录下所有文件的属性

    4 读 2 写 1 执行 0 无权限

  b 字符式文件表示法

    u 属主 g 属组 o 其它用户

    + 增加 - 减去 = 设置

    r 读 w 写 x 执行

   2)改变文件所属关系命令chown

    当我们要改变一个文件的属组,我们使用的用户必须是文件的属组而且同时是目标属组的成员,或超级用户。只有超级用户才能改变文件的属主。

    chown 语法:

    chown [选项] [所有者][:[组]] 文件  #:可以被.代替

    用chgrp 可以改变文件属组

 

  总结测试:Linux普通文件的读写执行权限说明

    可读r:表示具有读取文件内容的权限

    可写w:表示具有修改文件内容的权限

      (特别提示:删除文件,修改文件名,新建文件的权限是受父目录权限控制,和文件本身权限无关)

    可执行x:表示具有执行文件的权限(文件本身能够执行,普通用户同时还需具备r的权限,root权限也能执行,当然文件本身也需要能够执行。)

  总结测试:Linux目录的读写执行权限说明

    可读r:表示具有浏览目录下面文件及目录的权限,即ls dir。(不能进入目录里,即无法cd dir,如果没有x权限,列表时也有问题,ls -l dir列表属性会有问号,提示没有权限。)

    可写w:表示具有增加,删除,或修改目录内文件名的权限(需要x权限配合)

    可执行x:表示具有进入目录的权限;例如 cd dir。 

  Linux文件与目录权限对比说明:

  r(read,读权限):

    对文件而言,表示具有读取文件内容的权限。

    对目录来说,表示具有浏览目录的权限(注意,与进入目录的权限不同),要x权限配合。

  x(execute,执行权限):

    对文件而言,表示具有执行文件权限。对于可执行脚本文件,普通用户还需要r权限配合,root用户无需r权限;对于可执行程序,则无需r权限配合。

    对目录来说,表示具有进入目录的权限。

  -(无任何权限)

    若对应位为”-“,表示无任何权限。

  特别注意:

    当删除或移动一个文件或目录,仅与该文件与目录所在的上一层目录权限有关,与该文件本身属性没有任何关系。对于文件来说,写文件是修改文件,而不是删除文件,因此写文件是与该文件的本身        属性有关的。

 

  默认权限分配的命令umask

  工作中,一般默认权限,对目录是755,对文件是644。这是相对安全的权限。工作中尽量让我们的文件和目录达到以上默认权限。

  Linux系统中,文件的默认权限是由umask确定的。创建文件时,默认最大权限是666,创建文目录最大权限是777,然后根据umask值,屏蔽对应权限。在/etc/login.defs文件中可以查看umask在不同目录下的默认权限值。对家目录,默认权限umask 077.

  改变文件及目录的默认权限:

  umask 022 022

 

  设置用户ID位:用s表示。

    1)用户对应的前三位的x位上如果有,就用小s表示suid。当x位上没有x的时候,suid就是大写的S。

    2)设置用户ID位就是让普通用户可以以root或其他用户的权限运行只有root或其它用户才能运行的程序或命令,或程序命令对应本来没有权限操作的文件等。

    例如:如果要让boy用户删除本来无权删除的文件。

    a sudo  

    b suid(suid修改的执行的命令,而不是要处理的文件)

    3)仅对二进制命令程序有效,不能用在shell等类似脚本文件上。shell脚本仅仅是调用二进制命令程序而已,因此,具体权限还需要看二进制命令本身。

    4)二进制命令程序需要有可执行权限x

    5)suid权限仅在程序执行过程中有效。

    6)执行命令的任意用户可以获得该命令程序执行期间拥有这的权限。

    7)suid是双刃剑,是一个比较危险的功能,对系统安全有一定的威胁。


以上是关于Linux系统文件权限体系详解的主要内容,如果未能解决你的问题,请参考以下文章

12.29-linux r-w-x权限详解

linux系统644、755、777权限详解

十linux文件系统权限详解

Linux中文件系统的权限管理(普通权限,特殊权限,文件的扩展属性,FACL)

Linux中文件系统的权限管理(普通权限,特殊权限,文件的扩展属性,FACL)

Linux中文件系统的权限管理(普通权限,特殊权限,文件的扩展属性,FACL)