是否苏德位Linux 中的设备文件有什么特殊含义吗?
答案1
我相信事实并非如此。该位仅用于可执行文件。它在 Linux 内核头文件中定义为S_ISUID
.如果你 grep 内核源代码来查找这个常量,你会发现它仅用于:
should_remove_suid
函数,用于应删除 SUID/SGID 位的 FS 操作,prepare_binprm
fs/exec.c
准备可执行文件以设置 EUID 时使用的函数exec
,pid_revalidate
fs/proc/base.c
用于填充 procfs 的函数,notify_change
fs/attr.c
更改文件属性时使用的函数,is_sxid
仅由特定代码和函数使用include/linux/fs.h
的函数,XFS
GFS
notify_change
- 在文件系统特定代码中(当然)
所以在我看来,这个位仅在执行文件时使用(从用户空间的角度来看)。至少在 Linux 上是这样。