aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Richey <joerichey94@gmail.com>2017-08-30 04:49:39 -0700
committerJoe Richey <joerichey@google.com>2017-08-30 15:35:32 -0700
commite37a80cd9b601adc16894d3b6fb526ae8f4c846b (patch)
tree111fc5538902439858f65f302d86cd4234fb035b
parent221b1b3617c78f54f972aca24e4d15ea85b9ef29 (diff)
util: Added parsing and effective user functions
-rw-r--r--util/util.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/util/util.go b/util/util.go
index c02ea0e..3de4a1a 100644
--- a/util/util.go
+++ b/util/util.go
@@ -27,6 +27,8 @@ import (
"bufio"
"math"
"os"
+ "os/user"
+ "strconv"
"unsafe"
)
@@ -105,3 +107,23 @@ func ReadLine() (string, error) {
scanner.Scan()
return scanner.Text(), scanner.Err()
}
+
+// AtoiOrPanic converts a string to an int or it panics. Should only be used in
+// situations where the input MUST be a decimal number.
+func AtoiOrPanic(input string) int {
+ i, err := strconv.Atoi(input)
+ if err != nil {
+ panic(err)
+ }
+ return i
+}
+
+// EffectiveUser returns the user entry corresponding to the effective user.
+func EffectiveUser() (*user.User, error) {
+ return user.LookupId(strconv.Itoa(os.Geteuid()))
+}
+
+// IsUserRoot checks if the effective user is root.
+func IsUserRoot() bool {
+ return os.Geteuid() == 0
+}