第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Go中從用戶名切換用戶?

如何在Go中從用戶名切換用戶?

Go
料青山看我應(yīng)如是 2021-04-05 17:15:31
我必須使用給定的用戶名執(zhí)行此命令;撲朔迷離$su devrim -c "touch miki"我想,首先我需要從用戶名獲取uid,并在執(zhí)行ForkExec之前使用setuid。你可以建議嗎?我該怎么做呢 ?(ps:我沒有uid,只有用戶名)func exec(cmd *Command, async bool) os.Error {    parts := strings.Fields(cmd.Command)    command := parts[0]    // cmd.Su holds the username "root" or "myUser"    pid, err := os.ForkExec(command, parts, os.Environ(), "", []*os.File{nil, cmd.Stdout, cmd.Stderr})    cmd.Pid = pid    if !async {        os.Wait(pid, 0)    }    return nil}編輯:由于該sysuser的東西不起作用,我看到它只是解析/ etc / passwd,所以我決定自己做:func getUid(su string) int{    passwd,_ := os.Open("/etc/passwd", os.O_RDONLY , 0600)    reader := bufio.NewReader(passwd)    for {        line,err := reader.ReadString('\n')        if err != nil {             println(err.String())             break        }        parsed := strings.Split(line,":",4)        if parsed[0] == su {            value,_ := strconv.Atoi(parsed[2])            return value        }    }    return -1}我不確定所有/ etc / passwd是否在* nix上都相同,我們使用debian和ubuntu,請謹(jǐn)慎進(jìn)行。
查看完整描述

1 回答

  • 1 回答
  • 0 關(guān)注
  • 339 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號