Răsfoiți Sursa

auto update script executed

Toby Chui 1 an în urmă
părinte
comite
c4f47dc920
1 a modificat fișierele cu 27 adăugiri și 7 ștergeri
  1. 27 7
      mod/ganserv/authkey.go

+ 27 - 7
mod/ganserv/authkey.go

@@ -5,6 +5,7 @@ import (
 	"fmt"
 	"fmt"
 	"log"
 	"log"
 	"os"
 	"os"
+	"os/exec"
 	"os/user"
 	"os/user"
 	"runtime"
 	"runtime"
 	"strings"
 	"strings"
@@ -29,14 +30,24 @@ func TryLoadorAskUserForAuthkey() string {
 			log.Println("Unable to read authkey at C:\\ProgramData\\ZeroTier\\One\\authtoken.secret: ", err.Error())
 			log.Println("Unable to read authkey at C:\\ProgramData\\ZeroTier\\One\\authtoken.secret: ", err.Error())
 		}
 		}
 	} else if runtime.GOOS == "linux" {
 	} else if runtime.GOOS == "linux" {
-		//Try read from source
-		b, err := os.ReadFile("/var/lib/zerotier-one/authtoken.secret")
-		if err == nil {
-			log.Println("Zerotier authkey loaded")
-			fmt.Println(authKey)
-			authKey = string(b)
+		if isRoot() {
+			//Try to read from source using sudo
+			ak, err := readAuthToken()
+			if err == nil {
+				log.Println("Zerotier authkey loaded")
+				authKey = strings.TrimSpace(ak)
+			} else {
+				log.Println("Unable to read authkey at /var/lib/zerotier-one/authtoken.secret: ", err.Error())
+			}
 		} else {
 		} else {
-			log.Println("Unable to read authkey at /var/lib/zerotier-one/authtoken.secret: ", err.Error())
+			//Try read from source
+			b, err := os.ReadFile("/var/lib/zerotier-one/authtoken.secret")
+			if err == nil {
+				log.Println("Zerotier authkey loaded")
+				authKey = string(b)
+			} else {
+				log.Println("Unable to read authkey at /var/lib/zerotier-one/authtoken.secret: ", err.Error())
+			}
 		}
 		}
 
 
 	} else if runtime.GOOS == "darwin" {
 	} else if runtime.GOOS == "darwin" {
@@ -62,6 +73,15 @@ func TryLoadorAskUserForAuthkey() string {
 	return ""
 	return ""
 }
 }
 
 
+func readAuthToken() (string, error) {
+	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 isRoot() bool {
 func isRoot() bool {
 	currentUser, err := user.Current()
 	currentUser, err := user.Current()
 	if err != nil {
 	if err != nil {