在Golang中,可以使用os/exec包来执行系统命令,并指定其他用户来运行程序。

首先,需要导入os/exec包:

import (
    "os/exec"
    "log"
)

然后,可以使用exec.Command函数创建一个*exec.Cmd对象,并设置要执行的命令和参数。

cmd := exec.Command("sudo", "-u", "otheruser", "path/to/program")

在上面的例子中,使用sudo -u otheruser来指定其他用户,然后指定要运行的程序的路径。

接下来,可以使用cmd.Run()方法来执行命令,并等待它完成。

err := cmd.Run()
if err != nil {
    log.Fatal(err)
}

Run()方法会阻塞当前的goroutine,直到命令完成。如果命令执行失败,它会返回一个非空的error对象。

完整的示例代码如下:

package main

import (
    "os/exec"
    "log"
)

func main() {
    cmd := exec.Command("sudo", "-u", "otheruser", "path/to/program")
    err := cmd.Run()
    if err != nil {
        log.Fatal(err)
    }
}

注意:在使用sudo命令时,需要确保当前用户拥有足够的权限来以其他用户的身份运行程序

golang system用户指定其他用户运行程序

原文地址: http://www.cveoy.top/t/topic/iT97 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录