在Google Go应用程序中,检查当前进程是否以pipe理员身份运行的最简单方法是什么?
简短的答案是使用user.Current
。 然而…
你需要找到一个方法,给user.User
结构,找出用户是否是root用户。 你必须自己找出一个。 更重要的是, 您不应该将其用于安全目的 。 确定当前用户是否是root用户而不被运行该程序的人欺骗是非常棘手的。 例如,在Linux上用一个setuid二进制实现一个天真的实现将容易受到用户使用LD_PRELOAD欺骗二进制认为它是以root身份运行。 确保你或者a)理解这个确切的语义,并确信用户无法规避它(如果你选择这条路线,你应该看看其他人是否知道),或者, b)不要根据这些信息做出任何关键的安全决定。