uid_unix.go (817B)
1 //go:build unix 2 package diskfs 3 4 import ( 5 "os/user" 6 ) 7 8 // assume that the group leader has the same name as uid 9 func isGroupLeader(group, uid string) bool { 10 if group != uid { 11 return false 12 } 13 usr, err := user.Lookup(uid) 14 if err != nil { 15 return false 16 } 17 gids, err := usr.GroupIds() 18 if err != nil { 19 return false 20 } 21 grp, err := user.LookupGroup(group) 22 if err != nil { 23 return false 24 } 25 for _, gid := range gids { 26 if grp.Gid == gid { 27 return true 28 } 29 } 30 return false 31 } 32 33 func isGroupMember(group, uid string) bool { 34 usr, err := user.Lookup(uid) 35 if err != nil { 36 return false 37 } 38 gids, err := usr.GroupIds() 39 if err != nil { 40 return false 41 } 42 grp, err := user.LookupGroup(group) 43 if err != nil { 44 return false 45 } 46 for _, gid := range gids { 47 if grp.Gid == gid { 48 return true 49 } 50 } 51 return false 52 }