系统之家 - 系统光盘下载网站!

当前位置:系统之家 > 系统教程 > Linux文件权限解析

Linux文件默认权限与隐藏权限解析

时间:2015-08-03 13:52:40 作者:zhijie 来源:系统之家 1. 扫描二维码随时看资讯 2. 请使用手机浏览器访问: https://m.xitongzhijia.net/xtjc/20150803/54517.html 手机查看 评论

  Linux系统文件包括文件夹都会有一些权限,这些Linux权限包括默认权限和隐藏权限,本文就来解析一下Linux系统文件的默认权限和隐藏权限。

Linux文件默认权限与隐藏权限解析

  文件默认权限:umask

  [root@www ~]# umask

  0022 《==与一般权限有关的是后面三个数字!

  [root@www ~]# umask -S

  u=rwx,g=rx,o=rx

  默认的情况如下:

  若使用者创建为『文件』则默认『没有可运行( x )权限』,亦即只有 rw 这两个项目,也就是最大为 666 分,默认权限如下:

  -rw-rw-rw-

  若使用者创建为『目录』,则由於 x 与是否可以进入此目录有关,因此默认为所有权限均开放,亦即为 777 分,默认权限如下:

  drwxrwxrwx

  [root@www ~]# umask

  0022

  [root@www ~]# touch test1

  [root@www ~]# mkdir test2

  [root@www ~]# ll

  -rw-r--r-- 1 root root 0 Sep 27 00:25 test1

  drwxr-xr-x 2 root root 4096 Sep 27 00:25 test2

  umask的利用与重要性

  [root@www ~]# umask 002

  [root@www ~]# touch test3

  [root@www ~]# mkdir test4

  [root@www ~]# ll

  -rw-rw-r-- 1 root root 0 Sep 27 00:36 test3

  drwxrwxr-x 2 root root 4096 Sep 27 00:36 test4

  在默认的情况中, root 的 umask 会拿掉比较多的属性,root 的 umask 默认是 022 , 这是基於安全的考量啦~至於一般身份使用者,通常他们的 umask 为 002 ,亦即保留同群组的写入权力!

  chattr (配置文件隐藏属性)

  [root@www ~]# chattr [+-=][ASacdistu] 文件或目录名称

  选项与参数:

  + :添加某一个特殊参数,其他原本存在参数则不动。

  - :移除某一个特殊参数,其他原本存在参数则不动。

  = :配置一定,且仅有后面接的参数

  A :当配置了 A 这个属性时,若你有存取此文件(或目录)时,他的存取时间 atime

  将不会被修改,可避免I/O较慢的机器过度的存取磁碟。这对速度较慢的计算机有帮助

  S :一般文件是非同步写入磁碟的(原理请参考第五章sync的说明),如果加上 S 这个

  属性时,当你进行任何文件的修改,该更动会『同步』写入磁碟中。

  a :当配置 a 之后,这个文件将只能添加数据,而不能删除也不能修改数据,只有root

  才能配置这个属性。

  c :这个属性配置之后,将会自动的将此文件『压缩』,在读取的时候将会自动解压缩,

  但是在储存的时候,将会先进行压缩后再储存(看来对於大文件似乎蛮有用的!)

  d :当 dump 程序被运行的时候,配置 d 属性将可使该文件(或目录)不会被 dump 备份

  i :这个 i 可就很厉害了!他可以让一个文件『不能被删除、改名、配置连结也无法

  写入或新增数据!』对於系统安全性有相当大的助益!只有 root 能配置此属性

  s :当文件配置了 s 属性时,如果这个文件被删除,他将会被完全的移除出这个硬盘

  空间,所以如果误删了,完全无法救回来了喔!

  u :与 s 相反的,当使用 u 来配置文件时,如果该文件被删除了,则数据内容其实还

  存在磁碟中,可以使用来救援该文件喔!

  注意:属性配置常见的是 a 与 i 的配置值,而且很多配置值必须要身为 root 才能配置

  范例:请尝试到/tmp底下创建文件,并加入 i 的参数,尝试删除看看。

  [root@www ~]# cd /tmp

  [root@www tmp]# touch attrtest 《==创建一个空文件

  [root@www tmp]# chattr +i attrtest 《==给予 i 的属性

  [root@www tmp]# rm attrtest 《==尝试删除看看

  rm: remove write-protected regular empty file `attrtest‘? y

  rm: cannot remove `attrtest’: Operation not permitted 《==操作不许可

  # 看到了吗?呼呼!连 root 也没有办法将这个文件删除呢!赶紧解除配置!

  范例:请将该文件的 i 属性取消!

  [root@www tmp]# chattr -i attrtest

  lsattr (显示文件隐藏属性)

  [root@www ~]# lsattr [-adR] 文件或目录

  选项与参数:

  -a :将隐藏档的属性也秀出来;

  -d :如果接的是目录,仅列出目录本身的属性而非目录内的档名;

  -R :连同子目录的数据也一并列出来!

  [root@www tmp]# chattr +aij attrtest

  [root@www tmp]# lsattr attrtest

  ----ia---j--- attrtest

  Set UID

  基本上SUID有这样的限制与功能:

  SUID 权限仅对二进位程序(binary program)有效;

  运行者对於该程序需要具有 x 的可运行权限;

  本权限仅在运行该程序的过程中有效 (run-time);

  运行者将具有该程序拥有者 (owner) 的权限。

  Set GID

  与 SUID 不同的是,SGID 可以针对文件或目录来配置!如果是对文件来说, SGID 有如下的功能:

  SGID 对二进位程序有用;

  程序运行者对於该程序来说,需具备 x 的权限;

  运行者在运行的过程中将会获得该程序群组的支持!

  当一个目录配置了 SGID 的权限后,他将具有如下的功能:

  使用者若对於此目录具有 r 与 x 的权限时,该使用者能够进入此目录;

  使用者在此目录下的有效群组(effective group)将会变成该目录的群组;

  用途:若使用者在此目录下具有 w 的权限(可以新建文件),则使用者所创建的新文件,该新文件的群组与此目录的群组相同。

  SUID/SGID/SBIT 权限配置

  [root@www ~]# cd /tmp

  [root@www tmp]# touch test 《==创建一个测试用空档

  [root@www tmp]# chmod 4755 test; ls -l test 《==加入具有 SUID 的权限

  -rwsr-xr-x 1 root root 0 Sep 29 03:06 test

  [root@www tmp]# chmod 6755 test; ls -l test 《==加入具有 SUID/SGID 的权限

  -rwsr-sr-x 1 root root 0 Sep 29 03:06 test

  [root@www tmp]# chmod 1755 test; ls -l test 《==加入 SBIT 的功能!

  -rwxr-xr-t 1 root root 0 Sep 29 03:06 test

  [root@www tmp]# chmod 7666 test; ls -l test 《==具有空的 SUID/SGID 权限

  -rwSrwSrwT 1 root root 0 Sep 29 03:06 test # 配置权限成为 -rws--x--x 的模样:

  [root@www tmp]# chmod u=rwxs,go=x test; ls -l test

  -rws--x--x 1 root root 0 Aug 18 23:47 test

  # 承上,加上 SGID 与 SBIT 在上述的文件权限中!

  [root@www tmp]# chmod g+s,o+t test; ls -l test

  -rws--s--t 1 root root 0 Aug 18 23:47 test

  以上就是Linux文件默认权限和隐藏权限的解析了,只有掌握了Linux文件权限,才能更好地使用Linux系统。

标签 权限

发表评论

0

没有更多评论了

评论就这些咯,让大家也知道你的独特见解

立即评论

以上留言仅代表用户个人观点,不代表系统之家立场

其他版本软件

热门教程

人气教程排行

Linux系统推荐

扫码关注
扫码关注

扫码关注 官方交流群 软件收录