/usr/local/etc/rc.d/ scripts and non-root user
Alex Zbyslaw
xfb52 at dial.pipex.com
Wed Feb 6 16:50:55 UTC 2008
Zbigniew Szalbot wrote:
>I have looked at my /usr/local/etc/rc.d/ and realized that the symlink
>I put there has the root as owner. It all works but I would rather use
>a non-root user for to run that script.
>
>$ ls -l /usr/local/etc/rc.d/
>lrwxr-xr-x 1 root wheel 40 May 9 2007 sender.sh ->
>/usr/home/api/sender/start.sh
>
There's one more potential mistake you are making here. Who the script
runs as has nothing at all to do with who owns the script unless setuid
or setgid bits are set. They would be set on the script itself and not
the symlink, so we'd need to see
ls -lL /usr/local/etc/rc.d/sender.sh
to know what was set or not.
Specifically, startup scripts will always run as root and it will be up
to the script to do things as another user if appropriate. E.g. by
using su, or sudo, or by running a program which was setuid
some-other-user, or because it runs as root, simply changing to another
user when appropriate (see man 2 setuid).
Setuid/gid bits on shell scripts aren't considered safe, however and may
even be disabled.
--Alex
More information about the freebsd-questions
mailing list