github.com/del680202/goofys@v0.19.1-0.20180727070818-6a609fafa266/internal/perms.go (about) 1 // Copyright 2015 - 2017 Ka-Hing Cheung 2 // Copyright 2015 - 2017 Google Inc. All Rights Reserved. 3 // 4 // Licensed under the Apache License, Version 2.0 (the "License"); 5 // you may not use this file except in compliance with the License. 6 // You may obtain a copy of the License at 7 // 8 // http://www.apache.org/licenses/LICENSE-2.0 9 // 10 // Unless required by applicable law or agreed to in writing, software 11 // distributed under the License is distributed on an "AS IS" BASIS, 12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 // See the License for the specific language governing permissions and 14 // limitations under the License. 15 16 // System permissions-related code. 17 package internal 18 19 import ( 20 "os/user" 21 "strconv" 22 ) 23 24 // Return the UID and GID of this process. 25 func MyUserAndGroup() (uid int, gid int) { 26 // Ask for the current user. 27 user, err := user.Current() 28 if err != nil { 29 panic(err) 30 } 31 32 // Parse UID. 33 uid64, err := strconv.ParseInt(user.Uid, 10, 32) 34 if err != nil { 35 log.Fatalf("Parsing UID (%s): %v", user.Uid, err) 36 return 37 } 38 39 // Parse GID. 40 gid64, err := strconv.ParseInt(user.Gid, 10, 32) 41 if err != nil { 42 log.Fatalf("Parsing GID (%s): %v", user.Gid, err) 43 return 44 } 45 46 uid = int(uid64) 47 gid = int(gid64) 48 49 return 50 }