2013-07-10 63 views
3

我試圖在Windows中使用管理員權限運行Go程序。像Linux中的sudo一樣。爲此,我以管理員身份啓動cmd。我也試過runas管理員命令。以管理員身份運行Go程序

問題是os.Getuid()函數返回-1。程序檢查它,如果它不是0,它告訴你,你沒有管理員權限。從圍棋程序的Gor(listener.go)

代碼片段:

if os.Getuid() != 0 { 
    fmt.Println("Please start the listener as root or sudo!") 
    fmt.Println("This is required since listener sniff traffic on given port.") 
    os.Exit(1) 
} 

是否有此問題的任何解決方案?

感謝

+0

你有沒有嘗試過'Geteuid'這個有效的uid? – Volker

+0

是的,它也是-1。 – Xelom

回答

4

圍棋旗艦版是由主要發達國家轉到作者爲Linux /達爾文,與允許用於其他操作系統的架構。後來,其他人出現並移植到其他操作系統,如Windows。某些Windows端口有缺陷並且不完整。另外,一些Linux/Darwin功能(如安全模型)在Windows中沒有直接的模擬功能。

syscall_windows.go

. . . 
// TODO(brainman): fix all needed for os 
. . . 
func Getuid() (uid int) { return -1 } 
. . . 

打開隨身issue tracker一個新的問題。

+0

謝謝。你是對的! – Xelom

相關問題