Linux

在 Upstart 腳本中以非 root 使用者身份執行守護程序

  • November 21, 2020

我有一個執行後台守護程序的新貴腳本,我想以特定的非 root 使用者身份執行它。

腳本在這裡:

如何在 Ubuntu 上創建 Calibre 電子書伺服器

相關位在這裡:

description "Calibre (ebook manager) content server"

start on runlevel [2345]
stop on runlevel [^2345]

respawn

env USER='myusername'
env PASSWORD='mypassword'
env LIBRARY_PATH='/home/user/calibre-library'
env MAX_COVER='300x400'
env PORT='80'

script
   exec /usr/bin/calibre-server --with-library $LIBRARY_PATH --auto-reload \
                            --max-cover $MAX_COVER --port $PORT \
                            --username $USER --password $PASSWORD
end script

問題:calibre-server 執行檔以 root 身份執行。我希望執行檔本身以使用者“myusername”的身份執行,以便它具有該使用者的權限,而不是 root 的權限。

將行setuid <USER>和添加setgid <GROUP>到文件中。請注意,這不會以<USER>的補充組開始該過程。

引用自:https://serverfault.com/questions/861332