如何在“top”命令並按“c”鍵後拒絕其他人看到我的執行詳細資訊
在我的學校,我們共享一台伺服器來執行程序。
使用
top
我們可以看到伺服器的情況,如果按 鍵c
,我們甚至可以看到命令的詳細資訊,不知何故包括我的實驗室數據資訊。那麼,即使在使用後,我如何才能拒絕其他人看到我的跑步詳細資訊
c
呢?它可以只顯示程序的名稱,java 或 awk,但隱藏細節。
隱藏您的使用者資訊
因此,
top
它的預設行為是顯示框上的所有程序,您不能真正拒絕其他使用者查看這些詳細資訊。此 U&L Q&A 中討論了執行此操作的方法,標題為:第三個連結顯示了一個有趣的方法,它是一個核心更新檔,它添加了一個在 Linux 核心 3.3+ 中呼叫
hidepid
的選項:mount
$ mount /proc -o remount,hidepid=2
hidepid=0(預設)表示舊行為 - 任何人都可以讀取所有世界可讀的 /proc/PID/* 文件。
hidepid=1表示使用者不能訪問任何 /proc// 目錄,只能訪問他們自己的目錄。cmdline、sched*、status 等敏感文件現在受到其他使用者的保護。由於在 proc_pid_permission() 中完成的權限檢查和文件的權限保持不變,因此期望特定文件模式的程序不會混淆。
hidepid=2意味著 hidepid=1 加上所有 /proc/PID/ 將對其他使用者不可見。這並不意味著它隱藏了一個程序是否存在(它可以通過其他方式獲知,例如通過kill -0 $PID),但它隱藏了程序的euid和egid。它使入侵者收集有關正在執行的程序的資訊、某些守護程序是否以提升的權限執行、另一個使用者是否執行某些敏感程序、其他使用者是否執行任何程序等的任務複雜化。
gid=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 使用者。