authkeyLinux.go 742 B

1234567891011121314151617181920212223242526272829
  1. //go:build linux && ((linux && amd64) || (linux && arm64) || (linux && arm && armv6 && armv7))
  2. // +build linux
  3. // +build linux,amd64 linux,arm64 linux,arm,armv6,armv7
  4. package ganserv
  5. func readAuthTokenAsAdmin() (string, error) {
  6. if utils.FileExists("./authtoken.secret") {
  7. authKey, err := os.ReadFile("./authtoken.secret")
  8. if err == nil {
  9. return strings.TrimSpace(string(authKey)), nil
  10. }
  11. }
  12. cmd := exec.Command("sudo", "cat", "/var/lib/zerotier-one/authtoken.secret")
  13. output, err := cmd.Output()
  14. if err != nil {
  15. return "", err
  16. }
  17. return string(output), nil
  18. }
  19. func isAdmin() bool {
  20. currentUser, err := user.Current()
  21. if err != nil {
  22. return false
  23. }
  24. return currentUser.Username == "root"
  25. }