Mas*_*gol 23 command-line chmod
当我安装程序时,它建议我执行chmod 4555
. 好的,如果我只使用三个数字,我就知道值。例如
chmod 555 test-file
Run Code Online (Sandbox Code Playgroud)
会给
-r-xr-xr-x
Run Code Online (Sandbox Code Playgroud)
4 个写,2 个读,1 个执行。但是,当我这样做时:
chmod 4555 test-file
Run Code Online (Sandbox Code Playgroud)
它给了我
-r-sr-xr-x
Run Code Online (Sandbox Code Playgroud)
于是,x
改为s
。那是什么意思?
Tho*_*ard 36
实际上,您可以通过 4 个属性集使用chmod
。
Special
, User/Owner
, Group
, 和Others
按照这个顺序,当使用四位数的 chmods 时,第一个数字是可以设置的特殊位。
chmod 4555
相当于:
Set UID
位 - 以所有者身份运行文件,无论哪个用户正在运行它Read, Execute
Read, Execute
Read, Execute
将s
在您的权限“人类可读的”字符串表示该SetUID
位(在下面解释)设置。
实际上,我们可以将四位数的chmod
权限参数分解为特定的描述符,如下所示,并进行数学计算以确定4
第一部分中的 a5
是什么,下一部分中的a是什么,依此类推。
请记住,####
是Special
User/Owner
Group
和Others
的顺序。
对于Special
属性(四位数chmod
参数中的第一个数字):
Set UID
- 以所有者身份运行文件,而不管运行它的用户如何(s
在部分的人类可读权限字符串中显示User
)= +4(--s
下User/Owner
)Set GID
- 无论运行文件的用户/组如何,都将文件作为组运行(显示s
在部分的人类可读权限字符串中Group
)= +2(--s
下Group
)Sticky Bit
- EFFECTIVE ON DIRECTORIES ONLY - 如果设置,则只有目录的所有者用户root
可以删除目录,并且只有文件所有者root
可以删除其中的文件。(显示t
在部分的人类可读权限字符串中Others
)= +1(--t
下Others
)对于User/Owner
,Group
和Others
属性(四位数chmod
参数中的最后三个数字):
Read
= +4 ( r--
)Write
= +2 ( -w-
)Execute
(对于文件),或“进入/列出项目”(对于目录)= +1 ( --x
)它被称为SETUID
位。如果它由chmod 4555 test-file
(在您的情况下)设置,则test-file
可以由任何用户执行,就好像该用户是文件的所有者一样。
当该SETUID
位被设置时EUID
,没有权限以其他方式执行文件的用户的有效用户 ID ( )0744
将获取文件所有者的 EUID 并可以执行文件。
归档时间: |
|
查看次数: |
11742 次 |
最近记录: |