Sauvegarder un fichier en lecture seul sous Linux Ubuntu

Vim en readonly

Oups, j'ai oublié de faire un sudo

Vous modifiez un fichier système et vous apercevez au moment de la sauvegarde que vous êtes en lecture seule. Les modifications sont à recommencer !?! Pas forcément.

Cet article vous explique comment prendre les droits root avec sudo en pleine édition

La commande sudo

sudo vous permet le temps d'une commande de prendre les droits root sur votre serveur. Pour se faire, vous devez avoir le droits d'utiliser sudo. Demandez à votre administrateur de vous ajouter dans le fichier /etc/sudoers.

Cette commande est installée par défaut sur la distribution Ubuntu.
Elle permet d'accorder à certains utilisateurs la possibilité de lancer une commande en tant que root, généralement, en conservant une trace des commandes saisies et sans se connecter en tant qu'administrateur.

Utiliser sudo

L'utilisation classique de sudo est la suivante sudo <commande>.
Par exemple :

 $ id
 uid=1000(sylvain) gid=1000(sylvain)
 $ sudo id
 uid=0(root) gid=0(root)

Utiliser sudo durant une édition

L'édition d'un fichier sur lequel vous avez les droits de lecture mais pas d'écriture est trompeuse sous vi. L'information comme quoi vous êtes en read only est assez discrète. Ce n'est que lorsque vous allez sauvegarder vos modifications que vous allez être rappelé à l'ordre et vous apercevoir que vous avez oublié de lancer la commande d'édition avec sudo.
Cependant, vous pouvez vous éviter de refaire votre travail en utilisant la commande tee

 $ vi /etc/profile
 :w !sudo tee %

La commande vi :w demande une écriture sur l'entrée standard de la commande tee exécutée avec les droits de root, !sudo tee, de tout le fichier, %. La commande tee a donc le droit d'écriture sur le fichier. Vous venez de vous éviter de recommencer votre travail.