Linux: ps -o fuid,fuser,fgid,fgroup # 这些进程文件系统访问 ID 的用途是什么?

Linux: ps -o fuid,fuser,fgid,fgroup # 这些进程文件系统访问 ID 的用途是什么?

ps命令的手册页来看,这四个“文件系统访问”输出字段(使用-o选项指定)的用途是什么,即进程使用它们做什么?

fuid / fuser
fgid / fgroup

用法示例: $ ps -o fuid,fuser,fgid,fgroup.

我知道 fuid/fgid 返回一个 ID 号,fuser/fgroup 返回一个名称或 ID 号;另外 fuid/fuser 与用户值有关,而 fgid/fgroup 与组值有关。

但是这些过程值如何与“文件系统”相关,或者这意味着什么?

我正在运行 Debian,Buster。谢谢。


消歧义:不要将此fuser字段选择器与命令混淆fuser,命令显示哪些进程正在使用文件。

答案1

这些是历史文物,现在不应该使用 - 或者更确切地说,它们不应该设置为与有效 uid 和 gid 不同的值。每当后者更改时,文件系统 ID 都会更改以匹配,但文件系统 ID 可以使用以下命令设置为不同的值setfsuidsetfsgid

它们的作用与有效 uid 和 gid 相同,但仅用于文件系统访问权限检查。每当内核检查文件系统访问权限时,它不会使用有效的 uid 或 gid,而是使用文件系统 uid 和 gid。 NFS 服务器存在这些问题:后者需要更改用于访问文件系统的 uid 和 gid,但这会因信号处理而产生安全漏洞,并且引入文件系统 uid 和 gid 作为解决方法。

上面链接的文档提供了详细信息;也可以看看联机credentials帮助页

相关内容