OS X Modifier un fichier en utilisant TextEdit en tant que root ou superutilisateur

La modification de certains fichiers sur un système OS X nécessite des autorisations superutilisateur ou racine. En règle générale, ceci est accompli en utilisant sudo (qui permet aux utilisateurs autorisés d'assumer les pouvoirs de superutilisateur, les capes et les collants sont facultatifs) et vi. Vi peut causer une détresse intestinale et une perte de cheveux chez les non-initiés. Une alternative est l'utilisation de TextEdit, l'application d'édition de texte graphique, mais dans des circonstances normales, vous pouvez ouvrir un fichier système comme un hôte, mais vous ne pouvez pas l'enregistrer. En suivant les étapes de cette recette, vous pouvez modifier un fichier système à l'aide de TextEdit et reporter l'apprentissage vi pour un autre jour.


L'application de ligne de commande sudo permet à un utilisateur d'exécuter une autre application comme s'il s'agissait d'un autre utilisateur. Le plus souvent (et par défaut), l'autre utilisateur est root, le superutilisateur du système, qui peut tout modifier dans n'importe quel fichier de la boîte. Dans ce cas, nous voulons lancer l'application TextEdit.

Si vous n'avez jamais fouillé dans une application sous OS X, il est intéressant de jeter un coup d'œil. Lorsque vous examinez le dossier / Applications dans une fenêtre du Finder, vous voyez les applications répertoriées par nom, telles que TextEdit. Si vous répertoriez les fichiers à partir de la ligne de commande (ls -l / Applications), il s’agit en fait de répertoires, et non simplement de fichiers, et ont une extension .app telle que TextEdit.app. Vous pouvez changer de répertoire dans l'un de ces répertoires et regarder autour de vous. Si vous en regardez quelques-unes, vous verrez qu'il y a une organisation standard en elles et cela devrait vous rendre un peu plus chaud et peut-être plus confus à propos de toute cette situation. Cette structure de répertoires permet aux applications de contenir de nombreux fichiers et ressources de support. Ce qui nous intéresse est l’emplacement du fichier exécutable dans le répertoire de l’application. Dans le cas de TextEdit, le chemin d'accès à cet exécutable est /Applications/TextEdit.app/Contents/MacOS/TextEdit.

Sur la base de ces informations, exécuter TextEdit avec sudo pour modifier le fichier / etc / hosts devient une tâche simple (désolé, si la ligne de commande est assez longue):


sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit / etc / hosts

Dans de nombreux systèmes, cette commande de terminal peut mieux fonctionner:

sudo open -t / etc / hosts

Lorsque vous exécutez cette commande à partir d'une ligne de commande (dans une fenêtre de terminal), vous êtes invité à entrer un mot de passe. Le mot de passe correct est le vôtre (le mot de passe de l'utilisateur connecté à OS X, ainsi que le mot de passe fourni lors des mises à jour du système, etc.), pas le mot de passe de l'utilisateur root (qui n'existe pas par défaut, de toute façon).

Une fois que vous avez entré votre mot de passe, une fenêtre TextEdit s'ouvre et le contenu du fichier que vous modifiez apparaît. Éditez au contenu de votre coeur et enregistrez normalement lorsque vous avez terminé. Gardez simplement à l'esprit que la plupart des fichiers système sont protégés contre l'écriture pour une bonne raison (par exemple, si vous faites une erreur en les modifiant, de mauvaises choses peuvent arriver), alors modifiez-les à vos risques et périls.

Mettre à jour:

Les fonctions de gestion des versions de OS X Lion empêcheront ce didacticiel de fonctionner correctement. Même si vous utilisez un superutilisateur, le fichier dans textedit sera verrouillé. Depuis que Lion s’est déployé, je suis revenu à l’ancienne attente qui consistait à utiliser nano pour l’édition.

sudo nano / etc / hosts

Certes, nano a cette sensation de terminal rétro, mais c’est une méthode assez simple pour effectuer de simples modifications du fichier hôte.