用於執行守護程序(網頁伺服器、資料庫)的服務/系統帳戶是否需要有 home

用於執行守護程序(網頁伺服器、資料庫)的服務/系統帳戶是否需要有 home

我使用以下命令在 Fedora 上建立了一個系統帳戶

useradd -r -s /bin/false sysacct

然後建立一個目錄並賦予sysacct權限

mkdir /var/sysacct
chown sysacct:sysacct /var/sysacct

現在,當我嘗試以 sysacct 形式執行命令時

su - sysacct -c 'mkdir /var/sysacct/test'
I get error

無法將目錄更改為 /home/sysacct:沒有這樣的檔案或目錄


Why do I need to specify a home directory for this account?

答案1

用於執行守護程序(網頁伺服器、資料庫)的服務/系統帳戶是否需要有 home

一般來說,帳戶不需要有主目錄,但需要有各種特定的守護程序可能要求其 $HOME 指向存在的目錄,或可能運行需要 $HOME 存在的其他工具。

(例如,如果守護程序需要運行gpg來加密數據,gpg 將需要一個主目錄來儲存 ~/.gnupg,即使守護程式本身不需要。)

為什麼我需要為此帳戶指定主目錄?

因為你是詢問 su模仿「真實登入」過程,其中包括將工作目錄變更為指定使用者的主目錄。這被記錄為-或選項的效果的一部分-l

如果您不想su這樣做,則不要指定--l選項。

相關內容