suid 位对于设备文件有任何意义吗?

suid 位对于设备文件有任何意义吗?

是否苏德位Linux 中的设备文件有什么特殊含义吗?

答案1

我相信事实并非如此。该位仅用于可执行文件。它在 Linux 内核头文件中定义为S_ISUID.如果你 grep 内核源代码来查找这个常量,你会发现它仅用于:

  • should_remove_suid函数,用于应删除 SUID/SGID 位的 FS 操作,
  • prepare_binprmfs/exec.c准备可执行文件以设置 EUID 时使用的函数exec
  • pid_revalidatefs/proc/base.c用于填充 procfs 的函数,
  • notify_changefs/attr.c更改文件属性时使用的函数,
  • is_sxid仅由特定代码和函数使用include/linux/fs.h的函数,XFSGFSnotify_change
  • 在文件系统特定代码中(当然)

所以在我看来,这个位仅在执行文件时使用(从用户空间的角度来看)。至少在 Linux 上是这样。

相关内容