Sudo a expliqué

Ce que vous allez créer

Avec l'avènement de OS X 10.11 El Capitan, les difficultés de sans racine le mode est devenu réel. Ce nouveau mode est une fonctionnalité de sécurité qui bloque l’écriture sur les zones contrôlées par le système de votre Mac. Cela signifie que vous ne pouvez modifier et modifier que des éléments du répertoire de base..

Pour beaucoup d'entre nous, cela pose un réel problème. J'aime Homebrew, mais il met tout dans le / usr / local annuaire. Sur une nouvelle installation de El Capitan, ce répertoire n'existe pas et vous ne pouvez pas le créer normalement. 

Sur un système mis à niveau qui possède déjà ce répertoire, le propriétaire devient root (et tout ce qu'il contient!). Cela casse totalement Homebrew avec un Opération non autorisée Message d'erreur. Pire encore, si vous corrigez le problème, la prochaine mise à jour le rompt à nouveau. Mon système a mis à jour El Capitan deux fois et chaque fois que je devais le réparer pour utiliser correctement Homebrew.

Si vous n’êtes pas familier avec l’utilisation de la ligne de commande et des commandes les plus couramment utilisées, veuillez lire La ligne de commande est votre meilleur ami tutoriel d'abord. Ce tutoriel explique très bien les bases de l’utilisation de la ligne de commande.. 

Vous pouvez également vous référer à La ligne de commande pour la conception Web série et les cours Comment être un terminal pro et Techniques avancées de ligne de commande

Si vous ne connaissez pas Homebrew, s'il vous plaît lire le tutoriel Homebrew Demystified: le gestionnaire de paquets ultime d'OS X.

La commande Sudo

le sudo commande signifie Super utilisateur DO. Il vous permet d’exécuter toute autre commande de terminal en tant que super-utilisateur ou plus communément appelé l'utilisateur root. Le superutilisateur est le boss supérieur de l'ordinateur. Le superutilisateur peut tout faire sur l'ordinateur pour réparer et détruire. 

L'utilisation de cette commande peut être très dangereuse.

Cette commande est dans le / usr / bin annuaire. Vous devez d’abord vous assurer que vous avez ce répertoire dans votre chemin. Par conséquent, exécutez cette commande dans le terminal:

env | grep "PATH"

Dans la ligne qui commence par CHEMIN =, vérifier le chemin / usr / bin dans la liste séparée par deux points. Si ce n'est pas là, ajoutez ceci à la ~ / .bashrc fichier pour le shell bash ou le ~ / .zshrc fichier zsh pour le shell zsh:

export PATH = "$ PATH: / usr / bin";

Maintenant, vous pouvez utiliser le sudo commander. Certains pourraient penser que c'est la valeur par défaut, mais j'ai trouvé que certains systèmes manquaient de cette configuration. Je débogue des problèmes informatiques pour beaucoup de gens et ai vu le / usr / bin répertoire manquant dans les scripts de connexion de nombreux peuples.

Pour utiliser le sudo commande, vous tapez la ligne de commande que vous souhaitez exécuter après sudo avec un espace. 

Pour l'exemple de la fixation Homebrew, vous devez changer la propriété de la structure de répertoires en nom de connexion. Si vous n'êtes pas sûr de ce que le système utilise pour le nom de connexion, ouvrez le Terminal.app dans le répertoire de base et tapez:

ls -ld .

le ls commande sera Liste le contenu d'un répertoire. Les drapeaux -ld dire ls pour afficher la vue longue avec les attributs de fichier (l), et uniquement le répertoire (d). le . signifie le répertoire en cours. Cela devrait produire un résultat similaire à ceci:

drwxr-xr-x 132 employés de raguay 884 6 novembre 14:11 .

le raguay est le nom de connexion sur mon système. Ce sera différent pour vous et c’est le nom par lequel vous devez changer le / usr / local / la possession.

Maintenant, pour fixer la propriété de la / usr / local / répertoire, vous devez utiliser le chown commander. le chown commande signifie CHANGE PROPRIETAIRE et c'est ce qu'il fait. Sur mon système, la commande est la suivante:

sudo chown -R raguay / usr / local

le -R le drapeau raconte chown pour changer la propriété de manière récursive. Cela signifie que chaque fichier et répertoire de / usr / local auront leur propriétaire changé en raguay. Vous devez changer le nom d'utilisateur pour refléter votre système.


Fixation de la propriété de / usr / local

Ci-dessus, vous pouvez voir le message d'erreur lorsque vous essayez de changer le / usr / local propriété du répertoire sans utiliser sudo. Je n'ai pas utilisé le -R comme il le ferait d’avoir généré une erreur pour chaque fichier et répertoire. La ligne de commande suivante utilise le sudo commander. La commande vous demandera votre mot de passe puis exécutera l'action sans erreur.

Les dangers

Comme je l'ai dit, cela vous donne beaucoup de pouvoir sur le système. Soyez très prudent, vous pouvez rendre le système inutilisable à l’aide du bouton sudo commander. Par exemple, la ligne de commande pour supprimer un fichier est rm pour ReMove un fichier. Si vous tapez:

sudo rm -R /

Vous allez tout effacer sur le disque dur. Cela signifierait que vous auriez à réinstaller totalement votre système d'exploitation, tous vos programmes et tous vos fichiers de données à partir d'une sauvegarde. Si vous n'avez pas de sauvegarde, eh bien, tout est parti.

Même le chown commande peut rendre des choses inutilisables. Si vous changez le propriétaire de tous les fichiers de la / Applicatons répertoire à un nom qui n'existe pas, vous ne pourrez exécuter aucune de vos applications dans ce répertoire..

Par conséquent, soyez très prudent lorsque vous utilisez le sudo commander.

Conclusion

Maintenant que vous savez comment résoudre les problèmes de propriété sur votre Mac, vous avez les connaissances nécessaires pour résoudre les problèmes similaires que vous pourriez rencontrer à l'avenir. N'oubliez pas d'utiliser la commande très attentivement et de vérifier la commande que vous tapez avant de donner votre mot de passe. 

Une fois exécuté, l'annulation peut être difficile voire impossible sans une réinstallation complète du système d'exploitation..