Guest User

Untitled

a guest
Jan 18th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "log"
  6. "os"
  7. "os/exec"
  8. "os/user"
  9. "runtime"
  10. "strconv"
  11. "syscall"
  12. )
  13.  
  14. var (
  15. // Username ...
  16. Username string
  17. // Name ...
  18. Name string
  19. // HomeDir ...
  20. HomeDir string
  21. // UID ...
  22. UID uint32
  23. // GID ...
  24. GID uint32
  25. // Hostname ...
  26. Hostname string
  27. // TempDir ...
  28. TempDir string
  29. // Version ...
  30. Version string
  31. )
  32.  
  33. func init() {
  34. var err error
  35.  
  36. if runtime.GOARCH != "amd64" || runtime.GOOS != "darwin" {
  37. log.Fatal("This can only be executed on a macOS environment")
  38. }
  39.  
  40. if os.Geteuid() != 0 {
  41. log.Fatal("Please execute this program as an administrator")
  42. }
  43.  
  44. var u *user.User
  45. if u, err = user.LookupId(os.Getenv("SUDO_UID")); err != nil {
  46. log.Fatal(err)
  47. }
  48.  
  49. Username = u.Username
  50. Name = u.Name
  51. HomeDir = u.HomeDir
  52.  
  53. var uid, gid uint64
  54. if uid, err = strconv.ParseUint(u.Uid, 0, 32); err != nil {
  55. log.Fatal(err)
  56. }
  57. if gid, err = strconv.ParseUint(u.Gid, 0, 32); err != nil {
  58. log.Fatal(err)
  59. }
  60.  
  61. UID = uint32(uid)
  62. GID = uint32(gid)
  63.  
  64. if Hostname, err = os.Hostname(); err != nil {
  65. log.Fatal(err)
  66. }
  67.  
  68. TempDir = os.TempDir()
  69.  
  70. var swVers []byte
  71. swVers, err = exec.Command("/bin/bash", "-c", `"sw_vers" | grep ProductVersion`).Output()
  72. fmt.Println(string(swVers))
  73.  
  74. // var csrutilStatus []byte
  75. // csrutilStatus, err = exec.Command("csrutil", "status").Output()
  76. // fmt.Println(string(csrutilStatus))
  77.  
  78. // var firmwarepasswdCheck []byte
  79. // firmwarepasswdCheck, err = exec.Command("firmwarepasswd", "-check").Output()
  80. // fmt.Println(string(firmwarepasswdCheck))
  81. }
  82.  
  83. func main() {
  84. fmt.Printf("Username: %s\n", Username)
  85. fmt.Printf("Name: %s\n", Name)
  86. fmt.Printf("HomeDir: %s\n", HomeDir)
  87. fmt.Printf("Uid: %d\n", UID)
  88. fmt.Printf("Gid: %d\n", GID)
  89. fmt.Printf("Hostname: %s\n", Hostname)
  90. fmt.Printf("TempDir: %s\n", TempDir)
  91. fmt.Printf("Version: %s\n", Version)
  92.  
  93. var whoami []byte
  94. var cmd *exec.Cmd
  95.  
  96. cmd = exec.Command("whoami")
  97.  
  98. whoami, _ = cmd.Output()
  99. fmt.Printf("Executed as %s", string(whoami))
  100.  
  101. cmd = exec.Command("whoami")
  102.  
  103. cmd.SysProcAttr = &syscall.SysProcAttr{
  104. Credential: &syscall.Credential{
  105. Uid: UID,
  106. Gid: GID,
  107. },
  108. }
  109.  
  110. whoami, _ = cmd.Output()
  111. fmt.Printf("Executed as %s", string(whoami))
  112. }
Add Comment
Please, Sign In to add comment