如何在运行时 golang 应用程序中获得根级别的访问/权限?

Posted

技术标签:

【中文标题】如何在运行时 golang 应用程序中获得根级别的访问/权限?【英文标题】:How could I get a root level access/permission in runtime golang application? 【发布时间】:2017-07-17 16:36:34 【问题描述】:

以下命令将创建一个用户,但它要求 sudo 密码。

cmd := "sudo /usr/sbin/useradd "+ 
      "-m -d "+home_dir+                       
      " -s "+preferredShell +
      " -g "+usrLoginName+
      " "+ usrLoginName

cmdStatus,err := exec.Command("bash","-c",cmd).Output()

如何在没有 sudo 的情况下执行上述命令或如何为我的 golang 应用程序提供 root 级别权限?如何解决?

【问题讨论】:

【参考方案1】:

使用 sudo 运行您的 golang 应用程序。

【讨论】:

但我不想这样做,它需要 sudo 密码。能否请您提出一些更好的替代方案? 上面一行是自动执行的(以 90 秒为间隔),那么我们如何在终端提供 sudo 密码? 好吧,听起来你需要学习 Unix 系统管理。成为 root 最简单的方法就是不要放弃它,所以作为系统服务运行。 @PiyushSinha 或者如果你在桌面环境中,你可能会使用 Polkit:en.wikipedia.org/wiki/Polkit 使用visudo(或者,更准确地说,/etc/sudoers文件)可以指定运行sudo时不会要求输入密码的用户:askubuntu.com/a/147265/2639

以上是关于如何在运行时 golang 应用程序中获得根级别的访问/权限?的主要内容,如果未能解决你的问题,请参考以下文章

“根级别的数据无效。第 1 行,位置 1”解析 XML 时

仅查看分类的根级别

golang反射自定义tag

如何在 Swift 中使用动态键(在根级别)解码此 JSON?

web平台安装器 根级别上的数据无效.行1,位置1.

如何在运行时更改日志级别而不重新启动 Spring Boot 应用程序