Admettons que l’on veuille exécuter une commande nécessitant une élévation de privilège via sudo (par exemple mount, shutdown, etc)  et que l’on veuille rediriger la sortie de cette commande dans un fichier appartenant à root nécessitant donc lui aussi une élévation de privilège (un quelquonque fichier de /etc).


Si on fait la combinaison suivante, cela échouera :

sudo ma_commande >> mon_fichier


En effet le sudo « fait effet » sur ma_commande mais pas sur la redirection, 2 solutions pour palier à ce problème :



1 – Lancer un terminal en super-utilisateur et éxécuter la commande sans le sudo :

sudo -s
ma_commande >> mon_fichier


2 – Utiliser la commande bash

sudo bash -c "ma_commande >> mon_fichier"



Pour info voici la commande qui m’a fait me poser cette question :

sudo bash -c "mdadm --detail --scan >> /etc/mdadm/mdadm.conf"

 

Edit :

18/01/2010 : Une autre solution : http://linux.leunen.com/?p=780

Les commentaires sont fermés.