
我使用以下命令在 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
選項。