Sudo explicado

Lo que vas a crear

Con el advenimiento de OS X 10.11 El Capitán, las penurias de desarraigado el modo se hizo real. Este nuevo modo es una característica de seguridad al bloquear la escritura en cualquier área controlada por el sistema de su Mac. Eso significa que solo puedes editar y cambiar cosas en el directorio de inicio.

Para muchos de nosotros, eso plantea un problema real. me encanta Homebrew, pero pone todo en el / usr / local directorio. En una instalación nueva de El Capitán, ese directorio no existe y normalmente no puedes crearlo. 

En un sistema actualizado que ya tiene ese directorio, el propietario se convierte en raíz (¡y todo lo que contiene!). Esto se rompe totalmente Homebrew con un operación no permitida mensaje de error. Lo peor de todo, si lo arreglas, la próxima actualización lo rompe de nuevo. Mi sistema se ha actualizado. El Capitán dos veces y cada vez que he tenido que arreglarlo para usar correctamente Homebrew.

Si no está familiarizado con el uso de la línea de comandos y los comandos más utilizados, lea La línea de comandos es tu mejor amigo tutorial primero Este tutorial hace un gran trabajo explicando los conceptos básicos del uso de la línea de comandos. 

También puede referirse a La línea de comandos para el diseño web series y los cursos Cómo ser un Terminal Pro y Técnicas avanzadas de línea de comando

Si no está familiarizado con Homebrew, por favor lea el tutorial Homebrew Demystified: Ultimate Package Manager de OS X.

El Comando Sudo

los sudo comando significa Super usuario hacer. Te permite ejecutar cualquier otro comando de terminal como el superusuario o más comúnmente conocido como el usuario root. El superusuario es el jefe superior de la computadora. El superusuario puede hacer cualquier cosa en la computadora tanto para arreglar como para destruir. 

El uso de este comando puede ser muy peligroso..

Este comando está en el / usr / bin directorio. Primero debe asegurarse de tener ese directorio en su ruta. Por lo tanto, ejecute este comando en el terminal:

env | grep "PATH"

En la línea que comienza con PATH =, verifica el camino / usr / bin en la lista separada por dos puntos. Si no está allí, agrega esto a la ~ / .bashrc archivo para el shell bash o el ~ / .zshrc archivo zsh para el shell zsh:

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

Ahora, puedes usar el sudo mando. Algunos podrían estar pensando que este es el valor predeterminado, pero he encontrado que algunos sistemas faltan en esta configuración. Debato problemas de computadora para muchas personas y he visto el / usr / bin directorio que falta en los scripts de inicio de sesión de muchas personas.

Usar el sudo comando, escriba la línea de comando que desea realizar después de sudo con un espacio. 

Para el ejemplo de fijación. Homebrew, necesita cambiar la propiedad de la estructura del directorio al nombre de inicio de sesión. Si no está seguro de qué está usando el sistema para el nombre de inicio de sesión, abra el Terminal.app en el directorio de inicio y escriba:

ls -ld .

los ls comando hará Lista Los contenidos de un directorio. Las banderas -ld contar ls para mostrar la vista larga con atributos de archivo (l), y solo el directorio (d). los . significa el directorio actual. Esto debería producir una salida similar a esto:

drwxr-xr-x 132 personal raguay 884 6 de noviembre 14:11 .

los Raguay es el nombre de inicio de sesión en mi sistema. Será diferente para usted y es el nombre al que necesita cambiar el / usr / local / propiedad.

Ahora, para arreglar la propiedad de la / usr / local / directorio, necesitas usar el Chown mando. los Chown comando significa Cambio de propietario y eso es lo que hace. En mi sistema, el comando es:

sudo chown -R raguay / usr / local

los -R bandera dice Chown Para cambiar la propiedad recursivamente. Eso significa, cada archivo y directorio en / usr / local tendrá su dueño cambiado a Raguay. Tienes que cambiar el nombre de usuario para reflejar tu sistema.


Corrección de la propiedad de / usr / local

Arriba, puede ver el mensaje de error al intentar cambiar el / usr / local propiedad del directorio sin usar sudo. No utilicé el -R marca como se generaría un error para cada archivo y directorio. La siguiente línea de comando usa el sudo mando. El comando le pedirá su contraseña y luego realizará la acción sin errores.

Los peligros

Como he dicho, esto le da mucho poder sobre el sistema. Tenga mucho cuidado, puede hacer que el sistema no se pueda utilizar con el sudo mando. Por ejemplo, la línea de comando para eliminar un archivo es rm para ReMover un archivo. Si escribe:

sudo rm -R /

Vas a borrar todo en el disco duro. Eso significaría que tendría que reinstalar totalmente su sistema operativo, cualquier programa que tuviera y todos sus archivos de datos desde una copia de seguridad. Si no tiene una copia de seguridad, bueno, simplemente se ha ido.

Incluso el Chown comando puede hacer cosas inutilizables. Si cambia el propietario de todos los archivos en el / Aplicaciones directorio a un nombre que no existe, entonces no podrá ejecutar ninguna de sus aplicaciones en ese directorio.

Por lo tanto, tenga mucho cuidado de cómo usa el sudo mando.

Conclusión

Ahora que ya sabe cómo solucionar problemas de propiedad en su Mac, tiene los conocimientos para solucionar problemas similares que pueda tener en el futuro. Solo recuerde usar el comando con mucho cuidado y verifique el comando que escribe antes de proporcionar su contraseña. 

Una vez ejecutado, deshacerlo puede ser difícil o casi imposible sin una reinstalación completa del sistema operativo.