問題 - 建立可執行指令的system user

歡迎提問 debian desktop 相關問題,何謂 desktop ? 舉凡您日常生活會用到的部份,如上網 ( www 、 bbs ..) 、程式設計、繪圖...等等。 通常以 X Window 環境底下問題為主。

問題 - 建立可執行指令的system user

文章guest » 週日 6月 22, 2008 2:30 pm

各位好 我想建立一個 沒有密碼 不能登入 所屬群組與自己同名的system user 用來執行daemon/service 於是我照著man adduser的說明 下了這樣的語法:
代碼: 選擇全部
# adduser --system --home /share/ --no-create-home --group --disabled-password --disabled-login a_system_user

建立過程沒有錯誤輸出 (/etc/passwd內也看到此使用者a_system_user) 但是當我
代碼: 選擇全部
#su -c 'echo 123' a_system_user

之時 卻沒有"123"這個字串在stdout輸出
如果一樣的指令以系統建立的使用者執行 例如
代碼: 選擇全部
# su -c 'echo 123' nobody
123
# su -c 'echo 123' www-data
123
# su -c 'echo 123' debian-tor
123

都會有正常的"123"字串輸出 當然也應此 我建立的system user沒辦法執行其它的 我原本想執行的 系統服務
所以請教一下版上前輩 我建立system user的方法是不是錯了 是那個部分弄錯勒 先感謝了

PS: 我做的實驗結果是 即使我只是這樣下:
代碼: 選擇全部
adduser --system a_system_user

建立出來的a_system_user也是沒辦法執行指令 除非把--system拿掉 不過那樣就不是system user了..
guest
 

文章guest » 週一 6月 23, 2008 2:53 pm

自問自答: 如果要su成為某一個user,那麼不管他能不能登入、是不是system user,只要他沒有被指定shell (就是這個user在/etc/passwd的shell欄位的值 不存在於/etc/shells裡),那就沒辦法su。除非以root權限執行su,並加上-s shell參數,-s就是指定switch user之時要用什麼shell。
i.e.:
原本不會動的
代碼: 選擇全部
su -c 'echo 123' a_system_user

改以
代碼: 選擇全部
su -c 'echo 123' -s /bin/bash a_system_user

就會有輸出了
guest
 


回到 debian desktop

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron