Usa tee -a
(o tee --append
) con sudo
tee - read from standard input and write to standard output and files
[...]
-a, --append
append to the given FILEs, do not overwrite
[...]
Quindi il tuo comando diventa
echo "something" | sudo tee -a /etc/config_file
I vantaggi di tee
sull'esecuzione di Bash con permessi amministrativi sono
- Non esegui Bash con permessi amministrativi
- Solo la parte "scrittura su file" viene eseguita con autorizzazioni avanzate
- Citare un comando complesso è molto più semplice
Il reindirizzamento viene eseguito nella shell corrente. Per eseguire il reindirizzamento con privilegi elevati, devi eseguire la shell stessa con privilegi elevati:
sudo bash -c "somecommand >> somefile"
Chiedi a sudo di generare una sub-shell:
sudo sh -c "echo 'JAVA_HOME=/usr/lib/jvm/java-6-sun' >> /etc/profile"
In questo esempio, sudo esegue "sh" con il resto come argomenti.
(questo è mostrato come esempio nella pagina man sudo)