summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/os/Makefile5
-rw-r--r--src/lib/os/user.go49
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
+}
+