Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "fmt"
- "log"
- "os"
- "os/exec"
- "os/user"
- "runtime"
- "strconv"
- "syscall"
- )
- var (
- // Username ...
- Username string
- // Name ...
- Name string
- // HomeDir ...
- HomeDir string
- // UID ...
- UID uint32
- // GID ...
- GID uint32
- // Hostname ...
- Hostname string
- // TempDir ...
- TempDir string
- // Version ...
- Version string
- )
- func init() {
- var err error
- if runtime.GOARCH != "amd64" || runtime.GOOS != "darwin" {
- log.Fatal("This can only be executed on a macOS environment")
- }
- if os.Geteuid() != 0 {
- log.Fatal("Please execute this program as an administrator")
- }
- var u *user.User
- if u, err = user.LookupId(os.Getenv("SUDO_UID")); err != nil {
- log.Fatal(err)
- }
- Username = u.Username
- Name = u.Name
- HomeDir = u.HomeDir
- var uid, gid uint64
- if uid, err = strconv.ParseUint(u.Uid, 0, 32); err != nil {
- log.Fatal(err)
- }
- if gid, err = strconv.ParseUint(u.Gid, 0, 32); err != nil {
- log.Fatal(err)
- }
- UID = uint32(uid)
- GID = uint32(gid)
- if Hostname, err = os.Hostname(); err != nil {
- log.Fatal(err)
- }
- TempDir = os.TempDir()
- var swVers []byte
- swVers, err = exec.Command("/bin/bash", "-c", `"sw_vers" | grep ProductVersion`).Output()
- fmt.Println(string(swVers))
- // var csrutilStatus []byte
- // csrutilStatus, err = exec.Command("csrutil", "status").Output()
- // fmt.Println(string(csrutilStatus))
- // var firmwarepasswdCheck []byte
- // firmwarepasswdCheck, err = exec.Command("firmwarepasswd", "-check").Output()
- // fmt.Println(string(firmwarepasswdCheck))
- }
- func main() {
- fmt.Printf("Username: %s\n", Username)
- fmt.Printf("Name: %s\n", Name)
- fmt.Printf("HomeDir: %s\n", HomeDir)
- fmt.Printf("Uid: %d\n", UID)
- fmt.Printf("Gid: %d\n", GID)
- fmt.Printf("Hostname: %s\n", Hostname)
- fmt.Printf("TempDir: %s\n", TempDir)
- fmt.Printf("Version: %s\n", Version)
- var whoami []byte
- var cmd *exec.Cmd
- cmd = exec.Command("whoami")
- whoami, _ = cmd.Output()
- fmt.Printf("Executed as %s", string(whoami))
- cmd = exec.Command("whoami")
- cmd.SysProcAttr = &syscall.SysProcAttr{
- Credential: &syscall.Credential{
- Uid: UID,
- Gid: GID,
- },
- }
- whoami, _ = cmd.Output()
- fmt.Printf("Executed as %s", string(whoami))
- }
Add Comment
Please, Sign In to add comment