A linha de comando que você está sugerindo é segura.
Todas as outras coisas sendo iguais, os canais anônimos "normais" (criados com a chamada de sistema pipe(2)
ou a sintaxe familiar |
do shell) sempre serão mais seguros do que os pipes nomeados porque há menos maneiras de outra coisa fora do sistema para se apossar de qualquer uma das extremidades do tubo. Para canais anônimos normais, você só pode ler ou escrever a partir do canal, se você já tiver em seu poder um descritor de arquivo, o que significa que você deve ser o processo que criou o canal ou herdá-lo (direta ou indiretamente) desse processo, ou algum processo que teve o descritor de arquivo deliberadamente enviado para você através de um soquete. Para pipes nomeados, você pode obter um descritor de arquivo para o pipe, se você não tiver um, abrindo-o pelo nome.
Em sistemas operacionais como o Linux que possuem /proc
há sempre a possibilidade de outro processo poder espiar /proc/pid/fd
um descritor de arquivo de acesso pertencente a um processo diferente, mas isso não é nada exclusivo para pipes (de qualquer tipo), e também podem espiar o espaço de memória de outro processo. O "peeker" deve estar rodando sob o mesmo usuário que o assunto ou root, então não é um problema de segurança.