Se você digitar sudo echo $data >file
, seu shell primeiro abrirá o arquivo de saída como usuário normal e, em seguida, executará sudo echo
com a saída conectada ao arquivo já aberto. Portanto, o comando echo
é executado como root, mas file
é aberto como usuário normal.
Você precisa de uma construção como sudo sh -c 'echo $data >file'
.
Talvez seja mais fácil conceder permissão de gravação ao usuário para o diretório fornecido usando chmod
.