/usr/local/etc/rc.d/ scripts and non-root user
Alex Zbyslaw
xfb52 at dial.pipex.com
Wed Feb 6 16:42:35 UTC 2008
Zbigniew Szalbot wrote:
>Hello,
>
>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
>
>So I tried:
>$ sudo chown api /usr/local/etc/rc.d/sender.sh
>
>No error but no change either. The original start.sh file has user api
>but the symlink is owned by root.
>
>How can I make sure that the file is indeed run as user api?
>
>
AFAIK, the owner of a symlink is completely irrelevant. All accesses to
the file are checked against the permissions of the file pointed to, not
the symlink. (Same if the target of a symlink is a directory). Once
upon a time I'm sure all symlinks were owned by root, but could be
misremembering.
When you ran your chown, it did nothing at all
From man chown
Symbolic links named by arguments are silently left
unchanged unless -h is used.
If you really care; say you want a find -user api to find that symlink then
chown -h api /usr/local/etc/rc.d/sender.sh
should do what you want.
--Alex
More information about the freebsd-questions
mailing list