J'ai écrit un programme qui utilise ForkExec dans Go.Problème ForkExec et Su dans 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})
si vous exécutez cette commande sur votre shell et faites cat /tmp/sC0X3kASz7
vous verrez vos fichiers répertoriés. Toutefois, ForkExec ci-dessus crée uniquement le fichier et n'y écrit rien. Une idée de pourquoi cela arriverait?
go est root.
edit: command := "/bin/ls -lh/>/tmp/sC0X3kASz7"
ne fonctionnait pas non plus, juste essayé. il ne crée même pas le fichier/tmp.
Edit2: command := "/bin/bash /tmp/command.txt"
et je mets la commande ci-dessus dans ce fichier txt, encore une fois, exécuter à partir de shell, le fichier est créé, à partir ForkExec - Nope :(
EDIT3: solution est ici http://code.google.com/p/go/issues/detail?id=428
J'essaie avec root aussi, juste remarqué, il ne crée pas le fichier/tmp même sans SU – Devrim
solution est ici http://code.google.com/p/go/issues/detail?id=428 – Devrim