Bu arka plan programının / init'in root olmayan bir kullanıcı olarak çalışmasını nasıl sağlayabilirim?


19

Bir daemon'u başlatmak için bir init senaryom var. Sorun kök olarak çalışıyor olmasıdır. "Deploy" adında bir kullanıcı olarak çalışmasını istiyorum. Ubuntu 12.04

#! /bin/sh

# File: /etc/init.d/unicorn

### BEGIN INIT INFO
# Provides:          unicorn
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the unicorn web server
# Description:       starts unicorn
### END INIT INFO

DAEMON=/usr/local/bin/unicorn_rails
DAEMON_OPTS="-c /var/www/current/config/unicorn.rb -D"
NAME=unicorn
DESC="Unicorn"
PID=/var/www/current/shared/pid/unicorn.pid

case "$1" in
  start)
    echo -n "Starting $DESC: "
    $DAEMON $DAEMON_OPTS
    echo "$NAME."
    ;;
  *)
    echo "Usage: $NAME {start|stop|restart|reload}" >&2
    exit 1
    ;;
esac

exit 0

2
Değişim $DAEMON $DAEMON_OPTSiçinsu - deploy -c "$DAEMON $DAEMON_OPTS"
papatya

Chuid seçeneğinin hiçbir etkisi olmayacağından ve işlem kök olarak çalışacağından, test sırasında deamon'u "service" komutunu kullanarak başlatmamaya dikkat edin.
pasqal

Init.d içindeki tüm komut dosyaları çekirdikten sonra sistemdeki kullanıcıları zaten biliyor mu?
17'de ransh

Yanıtlar:


18

start-stop-daemonDaemon'unuzu başlatmak için yardımcı programı kullanın . Farklı bir kullanıcı olarak çalıştırmak için -c(veya --chuid) seçeneğini iletin. İçinde bazı örnekler bulacaksınız /etc/init.d/*.

case $1 in
  start)
    echo -n "Starting $DESC: "
    start-stop-daemon --start --chuid deploy --pidfile "$PID" --start --exec "$DAEMON" -- $DAEMON_OPTS
    echo "$NAME."
    ;;
…

Tüm init.d betikleri çekirdekten sonra çağrılıyor mu sistemdeki tüm kullanıcıları zaten biliyor mu?
17'de ransh

@ transh Ne istediğini bilmiyorum. Çekirdek, kullanıcıları gerçekten “tanımıyor”: ilgili olduğu sürece, bir kullanıcı sadece bir sayıdır ve 0 kullanıcısı olarak çalışan işlemlerin diğer kullanıcıların yapamayacağı birçok şeyi yapabilmesi dışında sayının ne olduğu umurunda değildir. .
Gilles 'SO- kötü olmayı bırak'

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.