Security
在非 root 使用者帳戶下執行守護程序是一種好習慣嗎?
我開發了一個應用程序,它使用 NTP 更改網路時間,同步我的兩台電腦。它執行為
root
,因為只允許後者更改 Linux 上的時間和日期(我猜)。現在,我想以使用者身份執行它。但是,我需要訪問時間。
- 在非 root 使用者帳戶下執行守護程序是一種好習慣嗎?
- 我應該給我的應用程序一個能力嗎
CAP_SYS_TIME
?- 它不會引入安全漏洞嗎?
- 有沒有更好的辦法?
在非 root 使用者帳戶下執行守護程序是一種好習慣嗎?
是的,這很常見。例如,Apache 以 root 身份啟動,然後將新程序派生為www-data(預設情況下)。
如前所述,如果您的程序被黑客入侵(例如:程式碼注入),攻擊者將無法獲得 root 訪問權限,但將僅限於您授予此特定使用者的權限。
我應該給一個“能力”,比如“CAP_SYS_TIME”嗎?
這是一個好主意,因為您避免使用setuid,並將權限限制為這個非常特定的功能。
我應該使用另一種被認為是“良好實踐”的方式嗎?
您可以提高安全性,例如:
- 以非特權使用者身份執行服務,無需 shell。
- 使用chroot將使用者鎖定在其主目錄中。