Seu comando não funciona porque o redirecionamento > file
é feito pelo shell atual anterior para a execução do comando, portanto, antes do sudo entrar em vigor.
Existe um comando, chamado tee
, que grava em um arquivo e stdout o que ele recebe em seu stdin: isso é útil para gravar algo em um arquivo sem redirecionamento. Se o arquivo puder ser modificado apenas pela raiz, basta prefixar sudo
a tee
.
echo 1500 | sudo tee /proc/sys/vm/dirty_writeback_centisecs
Outra maneira de obter o resultado desejado, mantendo o redirecionamento, é mover o redirecionamento para um subshell executado pelo root, através de sudo
:
sudo sh -c 'echo 1500 > /proc/sys/vm/dirty_writeback_centisecs'
Por fim, você pode inserir um shell de raiz de várias maneiras, e você permanecerá root até que você exit
explicitamente esse shell:
sudo su
sudo -s
sudo bash
Para obter mais informações, consulte as páginas do manual de sudo
, su
e, claro, de bash
.