//go:build linux // +build linux package ganserv import ( "os" "os/exec" "os/user" "strings" "imuslab.com/zoraxy/mod/utils" ) func readAuthTokenAsAdmin() (string, error) { if utils.FileExists("./conf/authtoken.secret") { authKey, err := os.ReadFile("./conf/authtoken.secret") if err == nil { return strings.TrimSpace(string(authKey)), nil } } cmd := exec.Command("sudo", "cat", "/var/lib/zerotier-one/authtoken.secret") output, err := cmd.Output() if err != nil { return "", err } return string(output), nil } func isAdmin() bool { currentUser, err := user.Current() if err != nil { return false } return currentUser.Username == "root" }