我正在尝试在 Windows 中以管理员权限运行 Go 程序。就像 Linux 中的 sudo 一样。为此,我以管理员身份启动 cmd。我也试过 runas 管理员命令。
问题是 os.Getuid()
函数返回 -1。该程序会检查它,如果它不是 0,则表示您没有管理员权限。
Go 程序 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)
}
这个问题有什么解决办法吗?
谢谢
最佳答案
Go 的旗舰版本是由主要的 Go 作者为 Linux/Darwin 开发的,其架构允许其他操作系统。后来,其他人出现并将 Go 移植到 Windows 等其他操作系统。某些 Windows 端口存在缺陷且不完整。此外,某些 Linux/Darwin 功能(如安全模型)在 Windows 中没有直接类似物。
. . .
// TODO(brainman): fix all needed for os
. . .
func Getuid() (uid int) { return -1 }
. . .
在 Go 上打开一个新问题 issue tracker .
关于windows - 以管理员身份运行 Go 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17570147/