1
0

authkeyLinux.go 835 B

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