Security

在非 root 使用者帳戶下執行守護程序是一種好習慣嗎?

  • September 19, 2015

我開發了一個應用程序,它使用 NTP 更改網路時間,同步我的兩台電腦。它執行為root,因為只允許後者更改 Linux 上的時間和日期(我猜)。

現在,我想以使用者身份執行它。但是,我需要訪問時間。

  • 在非 root 使用者帳戶下執行守護程序是一種好習慣嗎?
  • 我應該給我的應用程序一個能力CAP_SYS_TIME
  • 它不會引入安全漏洞嗎?
  • 有沒有更好的辦法?

在非 root 使用者帳戶下執行守護程序是一種好習慣嗎?

是的,這很常見。例如,Apache 以 root 身份啟動,然後將新程序派生為www-data(預設情況下)。

如前所述,如果您的程序被黑客入侵(例如:程式碼注入),攻擊者將無法獲得 root 訪問權限,但將僅限於您授予此特定使用者的權限。

我應該給一個“能力”,比如“CAP_SYS_TIME”嗎?

這是一個好主意,因為您避免使用setuid,並將權限限制為這個非常特定的功能。

我應該使用另一種被認為是“良好實踐”的方式嗎?

您可以提高安全性,例如:

  • 以非特權使用者身份執行服務,無需 shell。
  • 使用chroot將使用者鎖定在其主目錄中。

引用自:https://unix.stackexchange.com/questions/206779