默认情况下,我有一个常规的proc安装在/proc上。
(我是以下所有命令的根用户)
我再次在不同的位置安装相同的选项,如下所示:
mount -t proc -o hidepid=2 proc /some/dir/proc挂载工作,我可以看到来自ls /proc和ls /some/dir/proc的相同输出。
然后我跑:
setpriv —-reuid 1002 ls /proc输出仍然是一样的。不对uid 1002隐藏procs -uid 1002是非根用户。
我检查了setpriv是否正常工作,如果我使用setpriv -—reuid 1002 ls /root/,就会得到预期的拒绝许可。
看上去这个选项没有效果。我遗漏了什么?
发布于 2021-04-01 19:49:05
除了hidepid之外,还有gid选项:
gid=gid(自Linux3.3起) 指定一个组的ID,其成员有权学习hidepid禁止的进程信息
它没有明确地这样说,但在我的系统中,它似乎默认为零,如果不给定的话。(不过,我没有查消息来源。)所以,试着做这样的事情:
setpriv --regid 1002 --clear-groups --reuid 1002 ls /proc/ 此外,有一个错误导致proc在挂载时设置的挂载选项被忽略。使用-oremount设置它们之后就可以工作了。这是在Linux5.7中修正的,参见:为什么procfs挂载选项只在重新挂载上工作?
https://unix.stackexchange.com/questions/643136
复制相似问题