Проблема ForkExec и Su в Go - PullRequest
       3

Проблема ForkExec и Su в Go

0 голосов
/ 14 октября 2010

Я написал программу, которая использует ForkExec в Go.

command := "/bin/su -c '/bin/ls -lh / >/tmp/sC0X3kASz7' joe"

pid, err := os.ForkExec(command, []string{}, os.Environ(), "", []*os.File{nil, cmd.Stdout, cmd.Stderr})

если вы выполните эту команду в своей оболочке и наберете cat /tmp/sC0X3kASz7, вы увидите ваши файлы в списке.

однако, ForkExec выше только создает файл и ничего не записывает в него. Есть идеи, почему это случилось?

go - root.

edit: command := "/bin/ls -lh / >/tmp/sC0X3kASz7" тоже не сработало, просто попробовал. он даже не создает файл / tmp.

edit2: command := "/bin/bash /tmp/command.txt" и я поместил вышеупомянутую команду в этот текстовый файл, снова, выполнить из оболочки, файл создан, из ForkExec - нет: (

edit3: решение здесь http://code.google.com/p/go/issues/detail?id=428

1 Ответ

1 голос
/ 14 октября 2010

Возможно ли, что пользователь joe не может перечислить / по какой-то причине? Кажется, stderr никуда не денется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...