From 9d8add71f2733d0d1deb04e9d692f65bf0e8aa89 Mon Sep 17 00:00:00 2001 From: mahdi Date: Sat, 25 Nov 2023 15:48:16 +0100 Subject: [PATCH] sys - add user check --- sys/sys.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/sys/sys.go b/sys/sys.go index 24bae46..c8d65c2 100644 --- a/sys/sys.go +++ b/sys/sys.go @@ -8,6 +8,8 @@ import ( "os" "os/exec" "os/signal" + "os/user" + "strconv" "strings" "syscall" @@ -187,3 +189,30 @@ func CheckSumFile(remoteChecksum string, path string) bool { } return checksum == remoteChecksum } + +func IsRootUser() bool { + done := false + if usr, err := user.Current(); err != nil { + done = usr.Uid == "0" && usr.HomeDir == "/root" + } + return done +} + +func IsUser(name string) bool { + done := false + if usr, err := user.Current(); err != nil { + done = usr.Name == name + } + return done +} + +func IsSystemUser(name string) bool { + done := false + if usr, err := user.Current(); err != nil { + var id int + if id, err = strconv.Atoi(usr.Uid); err != nil { + done = id < 1000 + } + } + return done +}