On Sat, Apr 10, 2010 at 12:38:25PM +0200, Mats-G?ran Karlsen wrote:
> Hello.
> 
> I'm running a headless OpenBSD server.
> 
> I'm trying to create a startup script that executes the transmission-daemon as
> a regular user.
> 
> Details:
> 
> located in /etc/transmission/rc.transmission
> 
> permissions
> -rw-r-----   1 root  wheel   390 Jul 13 18:30 rc.transmission
> 
> 
> Script follows:
> -------script start--------
> 
> #! /bin/sh
> 
> #Provides       transmission-daemon
> 
> # --- Configuration ---
> 
> USERNAME=username
> PASSWD=password
> 
> # --- End configuration ---
> 
> DESC="bittorrent client"
> NAME=transmission-daemon
> DAEMON=$(which $NAME)
> CONFIGDIR="/home/$USERNAME/.config/$NAME"
> 
> #Start daemon
> 
> /usr/bin/sudo -u $USERNAME -p $PASSWD $DAEMON -g $CONFIGDIR
> 
> 
> ------script end---------
> 
> The following is appended to /etc/rc.conf
> 
> --
> transmission=YES
> --
> 
> the following is appended to /etc/rc.local
> 
> --
> if [ -f /etc/transmission/rc.transmission]; then
>        if [ X"${transmission}" = X"YES" -a -x
> /usr/local/bin/transmission-daemon ]; then
>           echo -n ' transmission-daemon';  .
> /etc/transmission/rc.transmission
>        fi
> fi
> --
> 
> The rc.transmission script runs fine when executed under root, but it isn't
> executed during boot.
> 
> Have been roaming around for tips but since i haven't figured out how OpenBSD
> executes
> startup scripts with other owners than root i'm out of ideas.
> 
> Hope somebody can give me pointers to what's wrong.

root is allowed to sudo anything.

why not just do:

if [ -x /usr/local/bin/transmission-daemon -a \
    X"R{transmission}" = X"YES" ]; then -
        echo -n ' transmission-daemon'
        sudo -u user /usr/local/bin/transmission-daemon  \
                -g /home/user/.config/transmission-daemon
fi

-0-
-- 
I don't think they could put him in a mental hospital.  On the other
hand, if he were already in, I don't think they'd let him out.

Reply via email to