Linux在权限检查中使用文件系统用户 ID ( fsuid
) 代替有效用户 ID ( euid
),使用文件系统组 ID ( fsgid
) 代替有效组 ID ( )。egid
Linux 是类 Unix/Unix 类别操作系统中唯一使用fsuid
和 的操作系统吗fsgid
?例如,BSD、macOS、Solaris 等操作系统是否使用fsuid
和fsgid
?
答案1
我能找到的所有提及fsuid
似乎都在说“仅限 Linux”或类似的内容。
setfsuid()
是 Linux 特定的,不应在可移植的程序中使用。
这UID设置功能对比不同 Unix 系统的:
setfsuid(uid)
将进程的文件系统 UID 设置为新值。 [...] 仅限 Linux。
正如手册页所述,它fsuid
仅用于解决(用户空间)NFS 服务器和旧版本 Linux 中的信号处理规则的潜在问题;它不太可能再被使用了。