Linux
如何阻止程序執行?
我可以殺死一個程序。但是如何在不將其從 Linux 中刪除的情況下防止該程序再次被呼叫呢?例如,如果我執行 netstat 之類的東西來查找與程序關聯的埠,然後將其殺死,我將在幾秒鐘內看到它再次以不同的 PID 執行。
更改其執行權限位。以 root 身份使用以下命令:
chmod a-x path_to_process_binary
這基本上拒絕了所有者、組和其他人的執行權限(as
a
= all)。這個簡單的技巧將阻止程序執行,但我相信您的系統中可能會發生更嚴重的事情。
如果您確實需要自己執行它,請檢查此答案。
也許有點太多了,但可能最安全的方法是使用 AppArmor 或 SELINUX 來阻止二進製文件的執行。修改文件權限將一直有效,直到提供該二進製文件的包被更新(然後,更新時它將再次設置為執行檔)。
另一方面,如果您試圖保護整個分區,以便無法直接在其中執行任何操作(例如,保護
/var
或/tmp
使任何人都無法在該目錄中解壓縮和執行二進製文件),您可以使用 " noexec" 選項標誌:root@server: ~ # grep noexec /etc/fstab /dev/sda6 /tmp ext4 defaults,noexec,nosuid,nodev 1 1
這邊走:
root@server: /tmp # cp /usr/bin/vim . root@server: /tmp # ./vim -bash: ./vim: Permission denied
請注意,shell 腳本仍然可以作為 執行
/bin/sh /tmp/myscript.sh
,但不能直接使用./myscript.sh
.“noexec”標誌對網路伺服器很有用,因為您可以避免一些基於從易受攻擊的 PHP 或 CGI 站點下載、編譯和執行二進製文件的攻擊。