sudo make me a sandwich
pffff
Je me retrouve souvent confronté devant ce problème:
% sudo some_command > /etc/some/other/file
Le problème c’est que l’utilisateur courant n’a pas les droit sur le fichier, et que le fichier est ouvert par le shell courant (qui n’est pas en root). Par exemple, si je veux mettre un serveur OpenDNS dans mon resolv.conf:
% sudo echo 'nameserver 208.67.222.222' > /etc/resolv.conf
Ne marche évidement pas. Il faut aller l’éditer avec, par exemple, un sudo $EDITOR /etc/resolv.conf (remarquez le subtile subterfuge afin d’éviter un inutile nième troll ee VS nano).
encore un peu de tee?
sur un random-{forum,irc-chan,ml,cabaret} j’ai trouvé cette perl (non bapt, non.) e :
% echo 'nameserver 208.67.222.222' | sudo tee /etc/resolv.conf
Et comme tout bon lecteur pourra RTFM dans man tee l’option -a permet de faire des sorts très puissants (et de remplacer >>):
% echo 'nameserver 208.67.222.220' | sudo tee -a /etc/resolv.conf
export EDITOR=/usr/local/bin/vim