Linux文件目录权限、隐藏属性、特殊权限

  • 一 Linux文件及目录权限概念

    • 1 查看目录或者文件的权限
    • 2 目录及文件权限分析
    • 3 文件与目录的默认权限umask
    • 4 更改文件或者目录的属性和权限
  • 二 文件与目录的隐藏属性和特殊权限
    • 1 文件与目录的隐藏属性
    • 2 文件的特殊权限SUIDSGIDSBIT
      • 设置特殊权限的命令

一、 Linux文件及目录权限概念

1.1 查看目录或者文件的权限

  “ls -al”命令可以查看

1.2 目录及文件权限分析

从上面的图中可以看到,目录或者文件的属性字段为:
  - - - - - - - - - -
从左至右分别表示:文件的类型、文件(目录)拥有者的读权限(u)、文件(目录)拥有者的写权限(w)、文件(目录)拥有者的执行权限(x),后面以此类推分别为所属组和其他人的对此文件(目录)的权限。

  • 第一个字符-文件类型
    [d]:目录
    [-]:文件
    [l]:链接文件
    [b]:可随机存储设备
    [c]:一次性读取设备(键盘、鼠标等)
  • 三个为一组的权限
    r:可读,用数字4表示
    w:可写,用数字2表示
    x:可执行,用数字1表示
    对于文件来说:r表示可以读取文件里面的内容、w表示可以向文件写入内容、x表示可以执行该文件(前提是该文件是可执行文件)。
    对于目录来说:r表示可以读取该目录下的文件,例如可以使用ls显示目录里面的文件、w表示可以在目录下创建文件、x表示可以进入目录,例如可以使用cd 进入一个目录。

1.3 文件与目录的默认权限umask

首先执行命令umask查看一下:

    

 我们发现显示的是0022,那么它们代表什么意思呢?现在新建一个文件和目录,然后查看新建的文件和目录的权限。
    

    从图中可以看出新建的f1文件权限为644,新建的目录d1权限为755,如果一个文件或者文件具有全部权限,那么它的权限为777,我们可以发现777去掉022就是755,其实umask代表的就是新建的文件或者目录去掉的权限,但是新建文件不具备执行权限,因此还要在umask的基础上再去掉执行权限!所以新建的文件权限就是644了!

1.4 更改文件或者目录的属性和权限

  • chown:更改文件拥有者
  • chgrp:更改文件所属组
  • chmod:更改文件权限,包括后面会说到的SUID等

二 文件与目录的隐藏属性和特殊权限

2.1 文件与目录的隐藏属性

  • chattr设置文件隐藏属性
    chattr [+-=] [ASacdistu] 其中[]代表里面的参数可选
    A:存取文件时,atime不会被修改,可避免过度I/O操作
    S:进行任何的文件修改都会同步到磁盘(sync)
    a:这个文件只能增加数据,不能删除也不能修改文件数据,只有root才能设置这个属性
    c:会自动对文件进行压缩,读取的时候回自动解压缩
    d:当dump程序被执行时,可使文件不被dump备份
    i:让一个文件不被删除、改名、设置链接也无法写入或新增数据
    s:如果一个文件被删除,它将完全从磁盘删除
    u:如果文件被删除,数据的内容还存在在磁盘中

  • lsattr显示文件隐藏属性
    lsattr [-adR] 文件或目录
    -a:将文件的隐藏属性显示出来
    -d:如果接的是目录,仅列出目录本身的属性而非目录内的文件
    -R:连同子目录的属性也一并显示

    从上图可以看出设置了i隐藏属性后,root也无法删除,必须把i属性去掉才可以删除。

    2.2 文件的特殊权限SUID、SGID、SBIT

  • SUID(set UID)
    当S出现在文件拥有者的x权限上面时,执行者在执行该文件的过程中拥有该文件拥有者的权限!例如/etc/passwd文件

    虽然该文件(命令)所输入和所属组都是root,但是每个人都可以修改自己的密码,因为在执行该文件(命令)的时候,设置了UID,就拥有了root权限。
    SUID只对可执行文件有效!,也就是二进制文件

  • SGID(set GID)
    SGID对文件和目录都有效,其效果分别如下表述:
    —-针对文件,SGID对二进制文件有效、执行者需要拥有执行文件的X权限,执行者执行过程中会获得程序文件群组的支持!
    例如locate程序去查找mlocate.db数据库:

    从上面可以知道,locate文件(命令)的组X权限具有S权限,那么执行的人在执行locate时候将会获得slocate群组的权限,这样就可以查看mlocate.db的内容了。

    —-针对目录,SGID设置在目录的X上面,如果执行者具有目录的w和x权限,那么执行者在该目录下所创建的文件具有和目录相同的所属组!

  • SBIT (Sticky Bit)
    只对目录有效,对目录设置了SBIT之后,在目录中创建的文件只能自己和root可以删除。用鸟哥的话说:“当甲这个使用者于 A 目录是具有群组或其他人的身份,并且拥有该目录 w 的权限, 这表示“甲使用者对该目录内任何人创建的目录或文件均可进行 “删除/更名/搬移” 等动作。”不过,如果将 A 目录加上了 SBIT 的权限项目时, 则甲只能够针对自己创建的文件或目录进行删除/更名/移动等动作,而无法删除他人的文件。”可以自己试试操作!

    设置特殊权限的命令

      4—SUID
      2—SGID
      1—SBIT

(0)

相关推荐

  • Linux 特殊权限

    一,特殊权限:SUID,SGID,STICKY 1,SUID 默认情况下,用户发起的进程的属主是其发起者,因此,进程以发起者的身份去访问别的资源. SUID的作用:用户执行某个程序文件时,如果此程序文 ...

  • Linux给用户添加sudo权限

    一.linux给用户添加sudo权限:  有时候,linux下面运行sudo命令,会提示类似:  xxxis not in the sudoers file.  This incident will ...

  • 【Linux笔记】文件的权限

    Linux是多用户操作系统,不同的用户对于文件的操作拥有不同的权限.我们可以使用 ls -l 命令列出当前目录下的文件及目录的详细信息: 我们重点看前10个字符,如 hello 文件详细信息中的前10 ...

  • linux普通账户开启root登陆权限,也适用于EC2,GCE,IBM等云 – 猫饭

    这些大厂商的云都是为了安全,所以系统默认都是只给了普通用户或者权限,我一直都是自己登录ssh修改,今天基友百度个脚本更方便,所以就备注一下. 脚本也适用于EC2,GCE,IBM,AWS Lightsa ...

  • linux 系统 chown设置文件权限

    一.相关命令sudo groupadd dnsmasqsudo chown enadmin:enadmin test.txt二.过程~/test$ ls -l-rw-r--r-- 1 root roo ...

  • linux中文件系统属性chattr权限

    一.chattr命令格式 格式 chattr [+-=][选项] 文件或目录名 操作 +: 增加权限-: 删除权限=: 等于某权限 选项 i: 如果对文件设置i属性,那么不允许对文件进行删除/改名,也 ...

  • linux下,文件的权限和数字对应关系详解

    命令 chmod ABC file 其中A.B.C各为一个数字,分别表示User.Group.及Other的权限. A.B.C这三个数字如果各自转换成由"0"."1&qu ...

  • Linux文件目录结构一览表

    学习 Linux,不仅限于学习各种命令,了解整个 Linux 文件系统的目录结构以及各个目录的功能同样至关重要. 使用 Linux 时,通过命令行输入 ls -l / 可以看到,在 Linux 根目录 ...

  • Linux文件目录简介

    [Linux文件目录简介] ##与系统启动有关目录 /boot :系统启动相关文件,入内核.initrd,以及grub(bootloader) /dev :设备文件 快设备:随机访问,数据块 字符设备 ...

  • umask如何计算文件目录权限?linux运维学习

    近年来互联网行业发展迅速,越来越多的人想要投身互联网企业,实现自己的职业前景与生活水平的提升.Linux运维技术成了很多人进入it互联网行业的众多选择之一.学习Linux运维需要掌握扎实的Linux基 ...