diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/os/Makefile | 5 | ||||
-rw-r--r-- | src/lib/os/user.go | 49 |
2 files changed, 52 insertions, 2 deletions
diff --git a/src/lib/os/Makefile b/src/lib/os/Makefile index 0334734d1..bfcb81dc2 100644 --- a/src/lib/os/Makefile +++ b/src/lib/os/Makefile @@ -3,7 +3,7 @@ # license that can be found in the LICENSE file. # DO NOT EDIT. Automatically generated by gobuild. -# gobuild -m dir_${GOARCH}_${GOOS}.go env.go error.go file.go proc_${GOOS}.go stat_${GOARCH}_${GOOS}.go time.go types.go exec.go >Makefile +# gobuild -m dir_${GOARCH}_${GOOS}.go env.go error.go file.go proc_${GOOS}.go stat_${GOARCH}_${GOOS}.go time.go types.go exec.go user.go >Makefile D= @@ -48,6 +48,7 @@ O2=\ env.$O\ stat_$(GOARCH)_$(GOOS).$O\ time.$O\ + user.$O\ O3=\ file.$O\ @@ -65,7 +66,7 @@ a1: $(O1) rm -f $(O1) a2: $(O2) - $(AR) grc _obj$D/os.a env.$O stat_$(GOARCH)_$(GOOS).$O time.$O + $(AR) grc _obj$D/os.a env.$O stat_$(GOARCH)_$(GOOS).$O time.$O user.$O rm -f $(O2) a3: $(O3) diff --git a/src/lib/os/user.go b/src/lib/os/user.go new file mode 100644 index 000000000..abb665b30 --- /dev/null +++ b/src/lib/os/user.go @@ -0,0 +1,49 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// User ids etc. + +package os + +import ( + "syscall"; + "os"; +) + +// Getuid returns the numeric user id of the caller. +func Getuid() (uid int, err Error) { + u, _, e := syscall.Syscall(syscall.SYS_GETUID, 0, 0, 0); + if e != 0 { + return -1, ErrnoToError(e) + } + return int(u), nil +} + +// Geteuid returns the numeric effective user id of the caller. +func Geteuid() (uid int, err Error) { + u, _, e := syscall.Syscall(syscall.SYS_GETEUID, 0, 0, 0); + if e != 0 { + return -1, ErrnoToError(e) + } + return int(u), nil +} + +// Getgid returns the numeric group id of the caller. +func Getgid() (uid int, err Error) { + g, _, e := syscall.Syscall(syscall.SYS_GETGID, 0, 0, 0); + if e != 0 { + return -1, ErrnoToError(e) + } + return int(g), nil +} + +// Getegid returns the numeric effective group id of the caller. +func Getegid() (uid int, err Error) { + g, _, e := syscall.Syscall(syscall.SYS_GETEGID, 0, 0, 0); + if e != 0 { + return -1, ErrnoToError(e) + } + return int(g), nil +} + |