我相信事实并非如此。该位仅用于可执行文件。它在 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 上是这样。