Bem, tecnicamente você não está redirecionando nada aqui.
Chamar script /dev/null
faz com que script
salve todo o texto datilografado em /dev/null
, o que na prática significa descartar o conteúdo.
Veja man script
para informações detalhadas e util-linux-ng para implementação ( misc-utils/script.c
).
Isso não tem nada a ver com screen
, na verdade. Por que isso funciona é invocar script
tem um efeito colateral de criar um pseudo-terminal para você em /dev/pts/X
. Dessa forma, você não precisa fazer isso sozinho, e a tela não terá problemas de permissão - se você su
do usuário A para o usuário B , invocando diretamente screen
você tenta pegar a posse do pseudo-terminal do usuário A . Isso não terá sucesso a menos que você esteja root . É por isso que você vê a mensagem de erro.