[Dev] setuid question
Jon Carnes
jonc at nc.rr.com
Wed Aug 13 15:48:49 EDT 2003
I'm sure you will get a better answer from someone, but when I write a
small stand-alone program and I want it to execute as the user (owner)
then use the setUID bit.
When I'm programming in Python I use something like:
import os
def check_privs():
# If we're running as root (uid == 0), then set the uid and gid
# to configured values
gid = grp.getgrnam(Prog_cfg.PROG_GROUP)[2]
uid = pwd.getpwnam(Prog_cfg.PROG_USER)[2]
myuid = os.getuid()
if myuid == 0:
os.setgid(gid)
os.setuid(uid)
elif myuid <> uid:
name = Prog_cfg.PROG_USER
usage(1, _(
'Run this program as root or as the %(name)s user.'))
Hope this is helpful!
Jon Carnes
On Wed, 2003-08-13 at 10:22, Peter Long wrote:
> Hi all,
>
> I am trying to setup a daemon that I wrote so that it runs under its own
> userid (with restricted privileges). I also want to create a user group
> that has permission to start and stop the daemon.
>
> I tried using 'chmod 6550' to set the uid and gid bits. This results in
> the effective user id and group id being set appropriately. However the
> real user id and group id is still the same as that of the user that
> started the daemon. Consequently only that user can send a SIGTERM signal
> to the process.
>
> I know that this must be something that has been done before and that
> there is a right way and a wrong way to do it. I am most likely doing it
> the wrong way.
>
> Any pointers in the right direction would be appreciated.
>
> --
> Peter Long
>
>
>
> _______________________________________________
> Dev mailing list
> Dev at trilug.org
> http://www.trilug.org/mailman/listinfo/dev
More information about the Dev
mailing list