ulimit 是一個用于控制 shell 進程資源使用的命令行工具。通過限制進程的資源使用,可以提高系統安全性。以下是一些建議:
限制打開文件描述符的數量:
打開文件描述符的數量可能會影響到系統的性能。通過限制每個用戶或進程可以打開的文件描述符數量,可以防止惡意用戶耗盡系統資源。例如,要將每個用戶的最大文件描述符數量限制為 1024,可以在 /etc/security/limits.conf 文件中添加以下行:
* soft nofile 1024
* hard nofile 1024
限制進程數:
通過限制每個用戶或進程可以創建的進程數量,可以防止惡意用戶創建大量進程來消耗系統資源。例如,要將每個用戶的最大進程數限制為 512,可以在 /etc/security/limits.conf 文件中添加以下行:
* soft nproc 512
* hard nproc 512
限制 CPU 時間:
通過限制進程可以使用的最大 CPU 時間,可以防止惡意用戶運行耗時的任務來影響其他用戶的操作。例如,要將每個用戶的最大 CPU 時間限制為 1 小時,可以在 /etc/security/limits.conf 文件中添加以下行:
* soft cpu 1:00:00
* hard cpu 1:00:00
限制內存使用:
通過限制進程可以使用的內存數量,可以防止惡意用戶運行內存密集型任務來消耗系統資源。例如,要將每個用戶的最大內存使用量限制為 512 MB,可以在 /etc/security/limits.conf 文件中添加以下行:
* soft as 512M
* hard as 512M
限制輸出長度:
通過限制進程可以創建的輸出長度,可以防止惡意用戶生成過長的輸出來消耗磁盤空間。例如,要將每個用戶的最大輸出長度限制為 1 MB,可以在 /etc/security/limits.conf 文件中添加以下行:
* soft core 1M
* hard core 1M
請注意,這些設置可能需要 root 權限才能生效。在修改 /etc/security/limits.conf 文件后,需要重新登錄或重啟系統以使更改生效。