在启动时永久设置 hidepid=1

在启动时永久设置 hidepid=1

我希望/proc使用该选项安装我的系统目录hidepid=1。我知道一旦系统已经启动,我就可以使用sudo mount /proc -o remount,hidepid=1.我怎样才能/proc在启动时以这种方式安装?我习惯于添加这样的文件系统选项来/etc/fstab执行此操作,但/proc那里没有条目。如果可能的话,我希望在/proc第一次安装时发生这种情况,而不是做一些像在/etc/rc.local.

答案1

您应该创建一个自定义 initrd 映像。这就是/proc/通常安装的地方。例如,在./init我的文件中/initrd.img

mount -t sysfs -o nodev,noexec,nosuid sysfs /sys
mount -t proc -o nodev,noexec,nosuid proc /proc

您应该在那里添加您的选项,然后使用 mkinitramfs(8) 重新打包 initrd。

另请注意,内核“命令行”中来自grub/lilo内核无法识别的所有选项都将传递给 init,因此您可以扫描"$@"并在以这种方式传递的参数上/init设置条件。hidepid

但我不相信这个hidepid选择有任何价值。


注意:如果您不相信在使用 initrd 的情况下它是/init(而不是/sbin/init等)默认运行的,或者如果您在解压/打包 initramfs 映像时遇到困难,请随时询问有关该问题的另一个问题; -)

答案2

为了让用户只看到他们自己的进程(除了root可以看到一切)你需要编辑/etc/fstab

proc            /proc           proc    defaults,hidepid=1   0    0

笔记:

  1. hidepid=0(默认):这是默认设置,并为您提供默认行为。
  2. hidepid=1:使用此选项,普通用户将看不到其他进程,只能看到他们自己的 ps、top 等进程,但他仍然能够看到进程 ID/proc
  3. hidepid=2:用户只能看到自己的进程(如 hidepid=1),但其他进程 ID 也为他们隐藏/proc

相关内容