一个文件(或文件夹)拥有若干个属性。包含(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)。

Linux中的默认权限与隐藏权限(文件、文件夹)的更多相关文章

  1. Linux学习之CentOS(九)-----文件与目录的默认权限与隐藏权限

    文件与目录的默认权限与隐藏权限 一个文件有若干个属性, 包括读写运行(r, w, x)等基本权限,及是否为目录 (d) 与文件 (-) 或者是连结档 (l) 等等的属性! 要修改属性的方法在前面也约略 ...

  2. Linux学习之CentOS(八)----文件与目录的默认权限与隐藏权限(转)

    文件与目录的默认权限与隐藏权限 一个文件有若干个属性, 包括读写运行(r, w, x)等基本权限,及是否为目录 (d) 与文件 (-) 或者是连结档 (l) 等等的属性! 要修改属性的方法在前面也约略 ...

  3. Linux之文件(目录)默认权限、特殊权限与隐藏权限

    文件默认权限 从Linux之用户组.文件权限详解了解到文件与目录的基本权限管理,文件在创建时如果不指定具体的权限,那么系统会给它分配一个默认的权限,这个默认权限就是umask. vbird@Ubunt ...

  4. Linux中生成Core Dump系统异常信息记录文件的教程

    Linux中生成Core Dump系统异常信息记录文件的教程 http://www.jb51.net/LINUXjishu/473351.html

  5. [转] Linux中的默认权限与隐藏权限(文件、目录)

    [From] https://blog.csdn.net/davidsky11/article/details/25424615 一个文件(或目录)拥有若干个属性,包括(r/w/x)等基本属性,以及是 ...

  6. Linux文件与目录的默认权限与隐藏权限 - umask, chattr, lsattr, SUID, SGID, SBIT, file

    文件默认权限:umask [root@www ~]# umask 0022 <==与一般权限有关的是后面三个数字! [root@www ~]# umask -S u=rwx,g=rx,o=rx ...

  7. 文件与目录的默认权限与隐藏权限【转vbird】

    一个文件有若干个属性, 包括读写运行(r, w, x)等基本权限,及是否为目录 (d) 与文件 (-) 或者是连结档 (l) 等等的属性! 要修改属性的方法在前面也约略提过了(chgrp, chown ...

  8. linux文件的特殊权限及隐藏权限

    基础知识 相信大家应该都知道linux的文件基本权限,使用ls -l命令可以显示文件的基本权限,"-rwxrwxrwx.",第一位表示文件的属性(是文件-  ,目录d等),后面每隔 ...

  9. 《linux就该这么学》课堂笔记08 用户权限、特殊权限、隐藏权限、su、sudo

    1.文件的读.写.执行权限可以简写为 r w x,亦可分别用数字4.2.1来表示 2.文件的特殊权限 2.1.SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限( ...

随机推荐

  1. 【NOIP2018】 游记

    All ended? [day 0] 一点感觉没有,不过翘掉了早上的课(当然还有前三周的课),然后刚想睡一会儿,就被通知要上车了/难受 在车上玩了一会儿早上下的Super Mario(主要是早上刷了一 ...

  2. mygenerator().next() AttributeError: 'generator' object has no attribute 'next'

    def mygenerator(): print ("start ...") yield 5 mygenerator() print ("mygenerator():&q ...

  3. 在使用实体框架(Entity Framework)的应用中加入审计信息(Audit trail)跟踪数据的变动

    在一些比较重要的业务系统中,通常会要求系统跟踪数据记录的变动情况.系统要记录什么时间,什么人,对那些信息进行了变动. 比较简单的实现方式是在每个表中加入两个字段CreatedBy和CreatedAt, ...

  4. Dubbo的@Reference和@Service说明---1Reference用在消费者2Service用在提供者【import com.alibaba.dubbo.config.annotation.Service;】

    @Reference 用在消费端,表明使用的是服务端的什么服务@RestControllerpublic class RemoteUserController { @Reference(version ...

  5. SDOI 2018 round2游记

    Day 0 早上起来从北京到济南 住宿环境不错 不过比赛环境怎么这么low啊 而且我在最偏僻的考场中最偏僻的角落里 身边居然是个妹子?! Day1 7:40到的考试地点 发现诸位大佬已经打完板子了or ...

  6. Android之通过配置Flavor实现一个项目打包成多个apk

    最近我老大问我一个问题,说Android可不可以像iOS那样,通过target对项目进行管理啊.老大提这个问题也是正常的,我公司的主要是帮别的公司做硬件定制的,每定制一个硬件就要定制一个APP,但是很 ...

  7. 本地Gradle配置方法,免去长时间的更新同步等待

    通常gradle项目在gradle\wrapper\gradle-wrapper.properties中配置在线gradle: distributionBase=GRADLE_USER_HOME di ...

  8. VHDL之concurrent之when

    WHEN (simple and selected) It is one of the fundamental concurrent statements (along with operators ...

  9. 11.02 跳过表中n行

    select x.enamefrom (select a.ename,(select count(*)from emp bwhere b.ename <=a.ename) as rnfrom e ...

  10. Why use Cache-Control header in request?

    本地缓存也是缓存代理的一部分. 请求时使用Cache-Control 表示缓存的使用策略. 请求头里的no-cache表示浏览器不想读缓存,并不是说没有缓存.一般在浏览器按ctrl+F5强制刷新时,请 ...