Daemon

自定義守護程序:我可以使用哪個使用者來執行,以避免使用 root?

  • November 2, 2021

我想編寫一個在啟動後、登錄前啟動的守護程序,它通過USB-rawhidArduino 微控制器進行後台通信。

我想以非 root 身份執行這個守護程序。

我也想避免創建一個新使用者,只是為了這個守護程序。

是否有任何系統通用使用者可以(重新)用於此目的?

我在/etc/shadow列出的使用者中看到,命名daemon但…

# su daemon
This account is currently not available.

我目前的目標是:

如果這個通用使用者可以在預設的 Debian 和 Ubuntu 安裝中使用,那將是一個獎勵。

正如@Bib 所提到的,您在嘗試切換到daemon使用者時收到的錯誤消息是因為該使用者的登錄 shell 設置為/sbin/nologin. 這樣就沒有人可以在控制台上作為該使用者工作,這是合理的,以避免對作為該使用者操作的服務產生不必要的干擾。這並不意味著systemd無法使用該使用者的 UID 執行程序,因此您可以daemon按照您想要的方式使用該使用者。

但是請注意,雖然最初引入daemon使用者和組的目的似乎是為了達到這個目的,但實際上現在推薦的方法是為您要在電腦上設置的自定義服務創建專用的“低權限”使用者。

由於您明確聲明要使用 執行服務systemd,因此可以使用該User=指令指定要執行二進製文件的使用者。只需添加

User=daemon

到文件的[Service]部分.service有關更多資訊,systemd請參閱文件

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