一个文件(或文件夹)拥有若干个属性。包含(r/w/x)等基本属性,以及是否为文件夹(d)与文件(-)或连接文件(l)等属性。此外,Linux还能够设置其它系统安全属性。使用chattr来设置。以lsattr来查看。最重要的是能够设置其不可改动的特性,即便是文件的拥有者都不能进行改动。

这个属性相当重要。尤其是在安全机制方面(security)。


文件默认权限:umask

         当建立一个新的文件或文件夹时,它的默认属性是与umask有关的。

通常,umask就是指定当前用户在建立文件或文件夹时的属性默认值。那么,怎样获知和设置umask呢?

         

         查看方式有两种,一种是直接输入umask,能够看到数字类型的权限设置分数。一种是增加-S(Symbolic)參数,救护以符号类型的方式显示权限。

         在默认权限的属性上。文件夹与文件是不一样的。因为我们不希望文件具有可运行权限。默认情况下。文件是不具有可运行(x)权限的。因此:

         1. 若用户建立的是“文件”,则默认没有可运行(x)权限,及仅仅有rw这两个权限,也就是最大为666,默认属性:-rw-rw-rw-;

         2. 若用户建立的是“文件夹”,则因为x与能否够进入此文件夹有关。因此默认全部权限均开放。即777,默认属性:drwxrwxrwx。

         


         umask指定的是该默认值须要减掉的权限。由于r/w/x各自是4/2/1,也就是说,当要去掉写权限时,就输入2。要去掉读权限时。就输入4,要去掉读和写的权限时,就输入6。所以,上图中0022。就是group与others的属性被去掉了2。那么当用户:

         1. 建立文件时:(-rw-rw-rw-) - (-----w--w-) è-rw-r--r--

         2. 建立文件夹时:(drwxrwxrwx) - (d----w--w-) èdrwxr-x-r-x

         假设我们只想取消group的w权限,也就是说,我们希望编写出来的文件应该具有-rw-rw-r--权限,全部,umask应该是002才对。直接在umask后面输入002就可以。

         

         在默认情况下。root的umask会去掉比較多的属性,root的umask默认是022。这是基于安全的考虑。一般身份用户通常的umask为002,及保留同用户组的写入权限。

 

文件隐藏属性

         文件有隐藏属性,隐藏属性对系统有非常大的帮助。尤其是系统安全性(Security)方面。

1、chattr(设置文件隐藏属性)

         

         

         这个属性设置上。比較常见的是a与i的设置值。并且狠毒设置值必需要root才干设置。

         

         这个命令非常重要,尤其是在系统的安全性方面。因为这些属性是隐藏的,所以须要用lsattr才干查看。

最重要的是+i属性。它能够让一个文件无法被更改。假设是登陆文件,就更须要+a參数,使它能够添加但不能改动与删除原有数据。

2、lsattr(显示文件的隐藏属性)

         

         使用chattr设置后,能够使用lsattr来查看隐藏属性。

         

 


文件特殊权限:SUID/SGID/StickyBit

1、Set UID

         创建s与t权限,是为了让一般用户在运行某些程序的时候,能够临时具有该程序拥有者的权限。

比如,账号和password的存放文件事实上是/etc/passwd与/etc/shadow,它们的拥有者是root。

在这个权限中,仅有root能够强制写入。一个普通用户webgod去更新自己的password时,使用的就是/usr/bin/passwd程序,却能够更新成功,而/usr/bin/passwd的拥有者是root。

那么。就是说webgod这个普通用户能够訪问/etc/shadowpassword文件。???这既是由于有s权限的帮助。当s权限在user的x时(注意下图的/usr/bin/passwd的相关属性),此处是-rwsr-xr-x,称为Set UID,简称SUID,这个UID表示User的ID,而User表示这个程序(/usr/bin/passwd)的拥有者(root)。

所以,当webgod用户运行/sur/bin/passwd时,他就临时获取文件拥有者root的权限。

         

         注:SUID仅可用在二进制文件(binary file)。并且对文件夹无效。

2、Set GID

         假设s的权限是在用户组。那么就是Set GID,简称SGID。SGID能够用在两个方面:

         1  文件:假设SGID设置在二进制文件上。不管用户是谁。在运行该程序的时候,它的有效用户组将会变成该程序的用户组全部者;

         2  文件夹:假设SGID是设置在A文件夹上,则在该A文件夹内所建立的文件或文件夹的用户组。将会是此A文件夹的用户组。

3、Sticky Bit

         SBit一般用于文件夹上,对文件的意义不大。SBit对文件夹的作用是:在具有SBit的文件夹下。用户若在该文件夹下具有w及x权限。则当用户在该文件夹下建立文件或文件夹时,仅仅有文件拥有者与root才有权利删除。SBit能够理解为防删除位。

假设希望用户能够加入文件但同一时候不能删除文件,则能够对文件使用SBit位。设置该位后,就算用户对该文件的父文件夹具有写权限,也不能删除文件。

4、SUID/SGID/SBIT权限设置

         使用数字更改权限的方式为“3个数字”的组合,那么,假设在这3个数字之前加上一个数字,最前面的数字就表示这个几个属性的组合:4为SUID。2为SGID。1为Sticky Bit。

         系统规定,假设本来在该位上有x。则这些特殊标志便是为小写字母(s/s/t),否则,显示为大写字母(S/S/T)。

         


posted on 2017-06-27 17:45  lxjshuju  阅读(901)  评论(0编辑  收藏  举报