go - 当前用户为root时如何以普通用户身份执行shell命令
问题描述
我go run main.go
以 root 身份运行,但我想以top
普通用户身份在 main.go 中执行。
# main.go
package main
import (
"context"
"fmt"
"os"
"os/exec"
)
func run() {
cmd := exec.CommandContext(context.TODO(), "bash", "-c", "top")
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err := cmd.Run()
if err != nil {
fmt.Println(
cmd.ProcessState.Success())
return
}
fmt.Println(
cmd.ProcessState.Success())
}
func main() {
run()
}
我怎样才能做到这一点?
解决方案
尝试执行这样的命令:
su fakeuser -c 'top -u `whoami`'
推荐阅读
- r - 如果条件出现缺失值错误
- c++ - 使用 SwapBuffers 拦截绘制 OpenGL 叠加层
- laravel - Laravel 8 使用工厂使用播种机将数据添加到数据透视表
- mysql - 基于连接表的“BETWEEN”条件动态计数的 SQL 选择
- python - 实例变量差异(Python)
- laravel-livewire - 测试 Laravel Livewire 排序组件
- react-native - 标题后退按钮未显示在堆栈屏幕中
- c# - 在 C# 中使用 Nhibernate 标准过滤多个值
- node.js - cosmosdb 中的相关 ID - Azure 诊断表(日志分析)
- python - ResNet object has no attribute 'predict'