authkeyLinux.go 853 B

123456789101112131415161718192021222324252627282930313233343536373839
  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. import (
  6. "os"
  7. "os/exec"
  8. "os/user"
  9. "path/filepath"
  10. "strings"
  11. "imuslab.com/zoraxy/mod/utils"
  12. )
  13. func readAuthTokenAsAdmin() (string, error) {
  14. if utils.FileExists("./authtoken.secret") {
  15. authKey, err := os.ReadFile("./authtoken.secret")
  16. if err == nil {
  17. return strings.TrimSpace(string(authKey)), nil
  18. }
  19. }
  20. cmd := exec.Command("sudo", "cat", "/var/lib/zerotier-one/authtoken.secret")
  21. output, err := cmd.Output()
  22. if err != nil {
  23. return "", err
  24. }
  25. return string(output), nil
  26. }
  27. func isAdmin() bool {
  28. currentUser, err := user.Current()
  29. if err != nil {
  30. return false
  31. }
  32. return currentUser.Username == "root"
  33. }