Changeset 37 in code for trunk/partage.go


Ignore:
Timestamp:
Oct 19, 2021, 5:39:20 PM (4 years ago)
Author:
dev
Message:

Keep setuid/setgid syscalls in main()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/partage.go

    r34 r37  
    266266}
    267267
    268 func dropprivilege(username string, groupname string) error {
     268func usergroupids(username string, groupname string) (int, int, error) {
    269269        u, err := user.Lookup(username)
    270270        if err != nil {
    271                 return err
     271                return -1, -1, err
    272272        }
    273273
     
    278278                g, err := user.LookupGroup(groupname)
    279279                if err != nil {
    280                         return err
     280                        return uid, -1, err
    281281                }
    282282                gid, _ = strconv.Atoi(g.Gid)
    283283        }
    284284
    285         syscall.Setuid(uid)
    286         syscall.Setgid(gid)
    287 
    288         return nil
     285        return uid, gid, nil
    289286}
    290287
     
    326323                        log.Printf("Dropping privileges to %s", conf.user)
    327324                }
    328                 dropprivilege(conf.user, conf.group)
     325                uid, gid, err := usergroupids(conf.user, conf.group)
     326                if err != nil {
     327                        log.Fatal(err)
     328                }
     329                syscall.Setuid(uid)
     330                syscall.Setgid(gid)
    329331        }
    330332
Note: See TracChangeset for help on using the changeset viewer.