Я написал программу, которая использует ForkExec в Go.Проблема с ForkExec и Su в 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 - корень.
Редактировать: 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
Я тоже пытаюсь с корнем, но он не создает файл/tmp даже без su – Devrim
. здесь http://code.google.com/p/go/issues/detail?id=428 – Devrim