我有一个 upstart 脚本,它运行一个后台守护进程,我想以特定的非 root 用户身份运行它。
脚本在这里:
相关内容如下:
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>
的补充组启动进程。