如何在“top”命令并按“c”键后拒绝其他人查看我的运行详细信息

如何在“top”命令并按“c”键后拒绝其他人查看我的运行详细信息

在我的学校,我们共享一台服务器来运行程序。

使用top我们可以看到服务器的情况,如果按 键c,我们甚至可以看到命令详细信息,不知何故包括我的实验室数据信息。

那么如何才能让其他人在使用后也无法看到我的跑步信息c呢?是否可以只显示进程的名称,java或awk,但隐藏详细信息。

答案1

隐藏您的用户信息

因此,top其默认行为是在框中显示所有进程,并且您不能真正拒绝其他用户查看这些详细信息。此 U&L 问答中讨论了执行此操作的方法,标题为:

第三个链接显示了一个有趣的方法,它是内核补丁添加了一个在 Linux 内核 3.3+ 中hidepid调用的选项:mount

$ mount /proc -o remount,hidepid=2

隐藏PID=0(默认)意味着旧行为 - 任何人都可以读取所有世界可读的 /proc/PID/* 文件。

hidepid=1意味着用户不能访问任何 /proc// 目录,只能访问他们自己的目录。 cmdline、sched*、status 等敏感文件现在受到保护,免受其他用户的攻击。由于在 proc_pid_permission() 中完成权限检查并且文件的权限保持不变,因此需要特定文件模式的程序不会混淆。

hidepid=2意味着 hidepid=1 加上所有 /proc/PID/ 对其他用户来说是不可见的。这并不意味着它隐藏进程是否存在(可以通过其他方式获知,例如通过kill -0 $PID),但它隐藏进程的euid和egid。它使入侵者收集有关正在运行的进程的信息的任务变得复杂,这些信息包括某些守护程序是否以提升的权限运行、其他用户是否运行某些敏感程序、其他用户是否运行任何程序等。

组号=XXX定义一个能够收集所有进程信息的组(如 hidepid=0 模式)。应该使用该组,而不是将非 root 用户放入 sudoers 文件或其他文件中。但是,不应将不应该监视整个系统中的任务的不受信任的用户(例如守护程序等)添加到该组中。

笔记:这并不赋予您任何控制可见性的能力,仅限制用户在 下查看其详细信息/proc

隐藏其他用户的信息

如果您想在使用时隐藏其他用户,top可以这样做:

$ top -u '!root'
...
top - 00:04:16 up 2 days,  1:51,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  80 total,   1 running,  79 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1016156 total,   204212 free,    80104 used,   731840 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   755224 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
  597 dbus      20   0   26668   1924   1364 S  0.0  0.2   0:08.55 dbus-daemon
  633 polkitd   20   0  536264  10216   4796 S  0.0  1.0   0:00.35 polkitd
  634 libstor+  20   0    8576    816    668 S  0.0  0.1   0:00.49 lsmd
 1305 postfix   20   0   91956   4292   3232 S  0.0  0.4   0:00.09 qmgr
 4199 vagrant   20   0  152392   3020   1424 S  0.0  0.3   0:01.53 sshd
 4200 vagrant   20   0  116196   2928   1796 S  0.0  0.3   0:00.05 bash
 5622 postfix   20   0   91776   4044   3028 S  0.0  0.4   0:00.00 pickup
 5672 user1     20   0  116096   2864   1808 S  0.0  0.3   0:00.04 bash
 5758 user1     20   0  157624   2136   1544 R  0.0  0.2   0:00.00 top

符号,'!root'意思是不是显示 root 用户。

相关内容