16 votes

Comment ouvrir un fichier en tant que racine dans TextEdit sur Lion ?

Comment ouvrir un fichier en tant que racine, dans TextEdit ? J'ai essayé ces commandes comme root mais TextEdit dit toujours que c'est verrouillé :

open -e /etc/apache2/httpd.conf
open -e -F /etc/apache2/httpd.conf
open -e -F -W /etc/apache2/httpd.conf

Et bien sûr sudo !! ne fait aucune différence.

18voto

Saul Dolgin Points 4128

Vous pouvez ouvrir une instance de textedit en tant que Root en entrant le chemin complet de l'exécutable actuel :

sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"

Une fois que votre instance Root est ouverte, vous pouvez naviguer jusqu'au fichier dont vous avez besoin ou le faire à partir de la ligne de commande :

sudo su - root -c "open -e /etc/apache2/httpd.conf"

0 votes

Merci, ça a marché ! sudo /Applications/Textedit.app/Contents/MacOS/TextEdit puis ouvrez simplement le fichier depuis TextEdit

0 votes

Si vous ne voulez pas taper cela à chaque fois, vous pouvez créer un alias en allant dans votre répertoire personnel dans le Terminal, puis pico .bash_profile , ajouter alias sudotext='sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"' , enregistrer le fichier, redémarrer le terminal. Maintenant, vous pouvez simplement taper sudotext pour démarrer TextEdit en tant que Root.

0 votes

Comme d'autres réponses l'ont souligné, pour le faire en 1 liner, la seule véritable option est d'avoir un éditeur tiers qui le supporte. Il suffit alors de taper open -t "/etc/hosts" par exemple. Avec TextWrangler vous pouvez simplement taper edit /etc/hosts .

9voto

Gordon Davisson Points 30215

BBEdit est l'outil gratuit pour ce faire en 2019 et il remplace toutes les fonctionnalités de TextErangler et vous pouvez le télécharger sur l'App Store et le site web du développeur.


TextEdit n'est pas vraiment l'outil approprié pour éditer les fichiers de configuration -- utiliser TextWrangler à la place. Il est gratuit, a la capacité intégrée d'éditer des fichiers avec un accès Root à partir d'un compte administrateur, ainsi que des choses comme l'ouverture de fichiers et de répertoires invisibles, l'édition facile de fichiers via SFTP, etc.

0 votes

emacs a également un joli code couleur pour le mode conf.

0 votes

Cela ne semble pas fonctionner pour moi dans Mountain Lion. J'obtiens une erreur lorsque j'essaie d'enregistrer les fichiers de configuration du système dans TextWrangler. Cela a-t-il changé ?

0 votes

@Simon : Il semble que vous ayez la version de TextWrangler de l'App Store, plutôt que le téléchargement direct à partir de barebones.com . Si c'est le cas, plusieurs fonctionnalités (dont celle-ci) ont été supprimées pour se conformer aux politiques de sécurité de l'App Store ; abandonnez-la et achetez plutôt la version directe !

7voto

Kevin Reid Points 1657

Voici un moyen d'éviter d'exécuter TextEdit en tant que Root :

EDITOR='open -Wne' sudo -e /etc/apache2/httpd.conf

Vous devrez quitter la copie de TextEdit après avoir modifié le fichier.

sudo -e parfois connu sous le nom de sudoedit mais pas sur OS X, fait une copie temporaire du fichier avec les droits d'écriture pour l'utilisateur actuel, invoque un éditeur sur celui-ci de la manière habituelle sous Unix, puis le recopie.

Les options pour open : -W attend que TextEdit quitte, donc sudo sait quand recopier le fichier. -n s'assure qu'il attend une instance distincte de TextEdit, et non une instance déjà ouverte que vous ne voudriez peut-être pas quitter. Vous pouvez également substituer -t au lieu de -e si vous avez un éditeur de texte préféré autre que TextEdit.

Si vous avez déjà un EDITOR pour utiliser un éditeur graphique avec son propre outil de ligne de commande capable d'attendre (tel que TextMate ou BBEdit), alors vous n'avez pas besoin de ces astuces et pouvez simplement utiliser sudo -e <file> directement.

3voto

Oskar Points 1242

Puisque l'utilisateur Root est désactivé, la seule façon de forcer une application OS X arbitraire à avoir des permissions Root est d'activer Root et de se connecter en tant que Root.

Les applications peuvent bien sûr utiliser l'API pour demander au système une authentification et faire apparaître la boîte de dialogue à laquelle vous vous attendez lorsqu'on vous demande un utilisateur et un mot de passe d'administrateur. TextEdit ne dispose pas de cette fonction et vous devez donc contourner les autorisations de fichiers avant et après avoir ouvert et écrit les fichiers souhaités.

Avez-vous essayé d'utiliser sudo open -a textedit pour ouvrir l'application ?

0 votes

Avez-vous des suggestions sur les applications qui ont cette fonctionnalité ? De préférence gratuites :)

4 votes

Ce n'est pas tout à fait exact. Dans Terminal.app, je lance sudo su - pour démarrer un shell en tant que Root et ensuite je peux exécuter open "/Applications/Textedit.app/Contents/MacOS/TextEdit" avec succès. L'utilisateur racine n'est pas activé et je ne me suis pas connecté en tant qu'utilisateur racine.

2voto

Gio Points 1556
sudo chmod +w name_of_the_file
sudo open -a TextEdit name_of_the_file
sudo chmod -w name_of_the_file

Il faut travailler

0 votes

Ok, donc il n'est pas possible de lancer TextEdit en tant que Root ? J'aimerais vraiment éviter les tracas supplémentaires liés au changement de permissions dans les deux sens.

1 votes

Les choses ont changé dans Lion, je suppose que c'est le sandboxing.

0 votes

Le fait est que le fichier que vous essayez d'ouvrir n'est pas accessible en écriture à Root en raison de sa permission. Ce serait la même chose pour un de vos fichiers (en fait, c'est la même chose, sauf que TextEdit est "intelligent" pour les fichiers des utilisateurs, donc il modifie l'autorisation en vous le demandant).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X