• 【译】Sticky Bits, UID's and GID's


    译自: Sticky Bits, UID's and GID's

    Sticky Bits, UID's and GID's

    文件权限中的特殊设置-如何理解和管理它们

    Understanding File Permissions
    How do I use chmod to manage file permissions?
    Sticky Bits, UID's and GID's

    概述

    您可以使用3位数字表示任何文件许可权值,或使用chmod对其进行管理。 但是,实际上,您可以使用4位数字来达到相同的结果,例如777等于0777,依此类推。 这个附加的八进制值代表一些特殊功能,称为“粘滞位”,“ UID” 和 “GID”。

    了解特殊的八进制值

    在常规文件权限内,未设置特殊选项。 范围从0到7的八进制值表示用于读取,写入和执行文件等的选项。 但是,如上所述,当使用此附加八进制时,值(仍在0-7范围内)表示以下选项:

    特殊选项八进制分解备忘单

    0 - No options set
    1 - Sticky Bit set
    2 - SGID set
    3 - Sticky Bit and SGID Set
    4 - SUID set
    5 - Sticky Bit and SUID Set
    6 - SGID and SUID set
    7 - Sticky Bit GID and UID Set

    其分别代表的8进制数值为:

    SUID:4

    SGID:2

    Sticky Bit: 1

    什么是粘性位?

    粘滞位是文件权限中的一种特殊设置,有助于限制访问权限,超出普通文件权限所能提供的范围。 简而言之,粘滞位可确保只有文件/目录的所有者才能删除或重命名文件。 但是,应注意,root用户也可以编辑和删除文件。

    如何设置粘性位

    在很大程度上,使用chmod时,设置“粘滞位”就像任何普通文件权限一样。 例如,通常,如果您想将文件设置为777权限,则可以执行以下操作。

    通常更改权限

    $ chmod 777 myfile.txt

    Confirming the change using ls -l
    $ ls -al

    output being:
    -rwxrwxrwx 1 root root 4096 Sep 24 2016 myfile.txt

    为了使用粘滞位将文件更改为具有777的相同权限,可以使用八进制1777,如下所示:

    粘滞位更改权限

    $ chmod 1777 myfile.txt

    Confirming the change using ls -l
    $ ls -al

    output being:
    -rwxrwxrwxt 1 root root 4096 Sep 24 2016 myfile.txt

    注意不同之处,其中777的常规文件许可权的符号值为“ -rwxrwxrwx”,而带有“粘滞位”的则为“ -rwxrwxrwxt”。 粘滞位在其符号值的末尾附加了“ t”。 该字母“ t”表示已设置“粘性位”。

    检测粘滞位

    运行ls -l 命令查看文件权限

    $ ls –l
    -rwxrwxrwxt 1 root root 4096 Sep 24 2013 your_file.txt
    drwxrwxrwxt 1 root root 4096 Sep 24 2013 your_directory

    请注意输出,对于文件和目录,其文件许可权的符号值分别为 -rwxrwxrwxt 和 drwxrwxrwxt。 如上所述,权限符号值上的附加字母 “t” 表示已设置“粘滞位”。

    什么是SGID|SUID

    在某些情况下,用户需要执行或操作文件或程序,因此需要提升的特权。 在这种情况下,可以设置SUID或SGID,以提供执行所需的权限。 SETUID或SETGID二进制文件分别在有关文档中执行命令的同时执行。 通常,在用户需要提升的权限并且没有管理员或root用户访问权限的情况下,需要SUID或SGID

    设置和检测SGID

    $ chmod 2777 myfile.txt

    Confirming the change using ls -l
    $ ls -al

    output being:
    -rwxrwsrwx 1 root root 4096 Sep 24 2016 myfile.txt
    # chmod 2777 changes myfile.txt to permissions 777 with an SGID

    请注意,符号许可权值为 -rwxrwsrwx,第二个三元组 “rws” 从该名称后附加一个 “s” 而不是一个 “x”。 字母 “s” 表示已为相关文件或目录设置了SGID。

    设置和检测SUID

    $ chmod 4777 myfile.txt

    Confirming the change using ls -l
    $ ls -al

    output being:
    -rwsrwxrwx 1 root root 4096 Sep 24 2016 myfile.txt
    # chmod 4777 changes myfile.txt to permissions 777 with an SUID

    请注意,符号许可权值为 -rwsrwxrwx,在第一个三元组 “rws” 的后面附加了 “s” 而不是 “x”。 该字母 “s” 表示已为所讨论的文件或目录设置了SUID。

    为什么有大写字母?

    在某些文件权限内,在某些情况下,您可能会看到大写字母“ S”或“ T”代替普通的小写字母。 以下是这些情况,参考文献及其含义的细分:

    -属主权限三元组大写

    例如,许可4236在其符号值 "--wS-wxrw-" 内包含一个大写 "S" 。 这表示已设置 SUID,但是属主没有执行权限。

    - 属组权限三元组大写 S

    例如,许可2767在其符号值 "-rwxrwSrwx" 内包含一个大写 "S"。 这表示已设置了 SGID,但是属组没有执行权限。

    - 大写 T

    大写字母 表示已设置 "粘滞位",但是其他组没有执行权限。 有关示例,请参见许可权1774,其符号值为 "-rwxrwxr-"。

    -------------------------------------------

    个性签名:如果世上的事都按你说的道理走 世界就不是现在这样了!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

  • 相关阅读:
    VirtualBox设置共享文件夹和镜像访问的方法
    虚拟机文件越来越大解决方案
    linux磁盘清理方法 Linux 下垃圾清理工具 BleachBit
    linux上怎么切换不同版本的arm-linux-gcc?只需改一行函数
    windows桌面添加右键环境
    各种机械键盘轴的差别,究竟什么轴好
    XML是什么,它能够做什么?——写给XML入门者
    MATLAB中导入数据:importdata函数
    理解ThreadLocal
    Leetcode:best_time_to_buy_and_sell_stock_II题解
  • 原文地址:https://www.cnblogs.com/Hi-blog/p/sticky-bit-suid-and-sgid.html
Copyright © 2020-2023  润新知