在 Upstart 脚本中以非 root 用户身份运行守护进程

在 Upstart 脚本中以非 root 用户身份运行守护进程

我有一个 upstart 脚本,它运行一个后台守护进程,我想以特定的非 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 的权限。

答案1

将行setuid <USER>和添加setgid <GROUP>到文件中。请注意,这不会使用<USER>的补充组启动进程。

相关内容