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

hos*_*ter 6 linux permissions devices files

请问suid位有在Linux设备文件的任何特殊含义?

Krz*_*ski 4

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