linux SUID, SGID, SBIT, 权限设定

时间:2021-11-09 15:14:52
  • set UID(SUID)

当s 这个标志出现在文件拥有者的 x 权限上时,例如 /usr/bin/passwd 这个文件的权限状态:『-rwsr-xr-x』,此时就被称为 Set UID,简称为 SUID 的特殊权限。 那么 SUID 的权限对于一个档案的特殊功能是什么呢?基本上 SUID 有这样的限制不与能:

  • SUID 权限仅对二进制程序(binary program)有效;
  • 执行者对于该程序需要具有 x 的可执行权限;
  • 本权限仅在执行该程序的过程中有效 (run-time)
  • 执行者将具有该程序拥有者 (owner) 的权限
    linux SUID, SGID, SBIT, 权限设定
    另外,SUID 仅可用在 binary program 上, 不能够用在 shell script 上面!这是因为 shell script 只是
    是将很多的 binary 执行文件叫进来执行而已!所以 SUID 的权限部分,还是得要看 shell script 呼叫进来
    的程序的设定, 而不是 shell script 本身。当然,SUID 对于目录也是无效的,

  • Set GID
    当s 标志在档案拥有者的 x 项目为 SUID,那 s 在群组的x时则称为 Set GID, SGID

    [suroots@192 ~]$ ll /usr/bin/locate

    -rwx–s–x. 1 root slocate 40512 11月 5 2016 /usr/bin/locate =>s在群组上称为sgid;

SGID功能
* SGID 对二进制程序有用;
* 程序执行者对亍该程序来说,需具备 x 的权限;
* 执行者在执行癿过程中将会获得该程序群组的支持!

当一个
目录设定了 SGID 的权限后,他将具有如下癿功能
* 用户若对于此目录具有 r 与 x 的权限时,该用户能够进入此目录;

  • 用户在此目录下的有效群组(effective group)将会变成该目的群组;
  • 若用户在此目目录下具有w的权限(可以新建档案),则使用者所建立的新档案,该新档案的群组与此目的的群组相同。

[suroots@192 test]$ mkdir yu

[suroots@192 test]$ sudo chmod -R g+s yu

[suroots@192 test]#ll
drwxrwsr-x. 2 suroots suroots 6 10月 12 20:48 yu


  • Sticky Bit
    这个 Sticky Bit, SBIT 目前只针对目录有效,对于档案已经没有效果了。 SBIT 对于目录;
    • 当用户对于此目录具有 w, x 权限,亦即具有写入癿权限时;

+ 当用户在该目录下建立档案或目录时,仅有自己与 root 才有权力删除该档案

  • SUID/SGID/SBIT 权限设定

r=4,w=2,x=1
chmod 755 ease 表示为user group others设定权限

那么如果在这三个数字的前再加上一个数的话,最前面的那个数字就代表这几个权限了

chmod 4755 xx 前面4代表 SUID

  • 4代表 SUID
  • 2代表 SGID
  • 1代表 SBIT

[suroots@192 test]$ sudo chmod 4755 t

[suroots@192 test]$ ll
-rwsr-xr-x. 1 root root 0 10月 9 22:05 t

user, group 以及 others 都
没有 x 这个可执行的标志,所以,这个 S, T 代表的就是『空的』啦!

妳也可以透过符号法来处理:

suroots@192 tt]$ sudo chmod u+s uy

[suroots@192 tt]$ ll
-rwSr–r–. 1 suroots suroots 0 10月 12 21:15 uy