亲爱的,我正在学习 Linux 权限,对 setuid 、 setgid 和 stickybit 感到困惑。我的以下理解正确吗?
设置 ID:
文件:- 当在可执行文件上设置 setuid 时,它启动时不会以启动它的用户的权限运行,而是以文件所有者的权限运行。
目录:在 UNIX 和 Linux 系统上,目录上设置的 setuid 权限将被忽略
坚持位:-
文件:忽略文件的粘滞位权限
目录:如果目录设置了粘滞位,则只有文件所有者、目录所有者或特权用户才能删除文件。
设置guid:-
文件:Setgid 用于文件时,与 setuid 非常相似。进程在执行时将以拥有该文件的组的身份运行。
目录:setgid 是否适用于目录。我尝试设置它,但未成功设置。
-bash-4.4$ pwd
/cms/fmw/sticktest
-bash-4.4$ ls -rlt
total 3
drwxrwxr-x 2 cmsstg cmsstg 3 Nov 8 16:23 guidtest
-bash-4.4$
-bash-4.4$ chmod 2775 guidtest/
-bash-4.4$ ls -rlt
total 3
drwxrwxr-x 2 cmsstg cmsstg 3 Nov 8 16:23 guidtest
-bash-4.4$
答案1
适用。这意味着目录中的文件将以目录的组创建。
举个例子:
[/tmp]$ mkdir konijn
[/tmp]$ ls -ld konijn
drwxr-xr-x 2 ljm users 4096 Nov 8 14:15 konijn
[/tmp]$ touch konijn/wiep
[/tmp]$ ls -l konijn/wiep
-rw-r--r-- 1 ljm users 0 Nov 8 14:15 konijn/wiep
[/tmp]$ chgrp games konijn
[/tmp]$ chmod 2755 konijn
[/tmp]$ ls -ld konijn
drwxr-sr-x 2 ljm games 4096 Nov 8 14:19 konijn
[/tmp]$ touch konijn/wiep2
-rw-r--r-- 1 ljm games 0 Nov 8 14:21 konijn/wiep2
请注意,所有者(ljm
)必须是组的成员(games
)