Pregunta

Estoy usando Homebrew para mis necesidades portuarias (parece una “limpia” bit de MacPorts).

Me puede instalar sin sudoing (que es grande), pero el paso que une el hombre parece requerir que (/usr/local/share/man/man3 es propiedad de root).
Una guía I encontrado sugiere que recurrentemente chown /usr/local haciendo

sudo chown -R `whoami` /usr/local

Es esto seguro ... o es una mala idea ™?

También:? Son mis permisos correctos

$ pwd
/usr/local/share/man
$ ls -lah
total 32
drwxrwxr-x    8 root  staff   272B  4 Set 11:02 .
drwxrwxr-x    9 root  staff   306B 10 Set 11:27 ..
drwxr-xr-x    3 root  wheel   102B  4 Ago  2009 de
drwxrwxr-x  163 root  staff   5,4K 10 Set 11:27 man1
drwxr-xr-x   11 root  wheel   374B 10 Set 11:27 man3
drwxr-xr-x    7 ago   staff   238B 10 Set 11:39 man5
drwxr-xr-x   11 ago   staff   374B 10 Set 11:39 man7
-rw-r--r--    1 root  staff    13K  4 Set 11:02 whatis
¿Fue útil?

Solución

Por lo general es mejor mantener los permisos lo más estricta posible. Mantener /usr/local propiedad de medios root que sólo los procesos que se ejecutan como root / sudo (o pedir para el usuario administrador a través del cuadro de diálogo de autorización de Apple) se puede escribir en esta área. Por lo tanto, un proceso de descarga tiene que pedirá una contraseña antes de la corrupción de archivos allí.

Sin embargo, como usted dice, que hace que añadir nuevos programas con más fuerza.

Estoy bien con sudo correr, y cuando se instala cosas con menos frecuencia que la ejecución de ellos, pero hay que confiar en que el proceso de compilación no cambia nada debiera.

Si se quiere evitar sudo Me instalar Homebrew en ~/usr/local y alterar su ruta, ruta de manual, etc para incluir los directorios bajo allí.

Una mejor manera es crear otro usuario, por ejemplo, homebrew y crear un directorio de propiedad de ese usuario. A continuación, instale allí utilizando sudo -U homebrew. Otros usuarios no tendrán el beneficio de no ser capaz de sobreescribir cualquier otro archivo, ya que no se están ejecutando como root y otros programas no pueden afectar homebrew. (Observo que la Homebrew FAQ Qué sugiere esto nuevo usuario si se encuentra en un entorno de "multi-usuario ". yo diría que cualquier máquina Unix incluyendo macOS es un entorno multi-usuario)

Sin embargo, como el wiki Homebrew dice que las recetas no encuentran todos los casos de /usr/local y reemplazarlos con el directorio elegido Sospecho que estamos estancados con /usr/local.

Otros consejos

Yo uso Homebrew demasiado y puede confirmar que es totalmente seguro. Citando la noreferrer"> página Homebrew FAQ :

Hágase un favor y recoger /usr/local

  1. Es más fácil
    /usr/local/bin ya está en su PATH.

  2. Es más fácil
    Toneladas de scripts de construcción se rompen si sus dependencias no están en / usr o / usr / local. Podemos solucionar este problema para las fórmulas Homebrew (aunque no siempre estamos de prueba para ello), pero usted encontrará que muchos RubyGems y scripts de configuración de Python ruptura que es algo que está fuera de nuestro control.

  3. Es seguro
    Apple ha conformado con POSIX e izquierda de este directorio para nosotros. Lo que significa que no existe ningún directorio /usr/local por defecto, así que no hay necesidad de preocuparse por echar a perder las herramientas existentes.

Si va a instalar gemas que dependen de cervezas y luego ahorrarse un montón de problemas e instalar a /usr/local!

No es trivial para decirle joya que buscar en los directorios no estándar para los encabezados y dylibs. Si elige /usr/local, todo “simplemente funciona!”

sólo voy a añadir que hacer las cosas como root es una idea muy mala , por lo chowning /usr/local no sólo me parece razonable (no es un directorio del sistema en OSX), pero cuerdo .

Sus permisos no son correctos (todavía). Sólo tiene que ejecutar el comando que enumerado y que vas a estar bien.

Si usted tiene otros problemas de recordar, el brew doctor puede ayudarle!

Si está utilizando Homebrew, debe darle el permiso de escritura al grupo específico (ya sea admin o staff), por lo que los archivos se pueden compartir entre los usuarios que están en ese grupo.

Por ejemplo:

sudo chgrp -R admin /usr/local /Library/Caches/Homebrew
sudo chmod -R g+w /usr/local /Library/Caches/Homebrew

A continuación, asigne los usuarios que deben tener acceso a los comandos brew a ese grupo (ver sus grupos a través de: id -Gn).

A continuación, cuando se trabaja con brew, no se ejecutan con sudo.

Cuando aún tener algún problema de permisos, brew doctor ejecutada para solucionar el problema.

Por lo que vale, /usr/local no se considera una carpeta "sistema" de OS X, y en un nuevo Snow Leopard instalar esa carpeta está vacía.

Cualquier material de propiedad raíz en esa carpeta es el resultado de sudo make install en otro software, o dar su contraseña después de hacer doble clic en un .pkg que quiere volcar cosas en /usr/local.

/usr/local Ser propietario ha "trabajado para mí" en 2 máquinas durante más de un año.

Uno de gotcha es que si usted ha instalado MySQL (no usar Homebrew) y chown sus archivos, entonces probablemente no será capaz de ver sus bases de datos más (por lo que tendría que chown de vuelta a lo que sea usuario MySQL se ejecuta como.)

Al igual que en Homebrew 1.0.0:

Homebrew ya no tiene que tener la propiedad de / usr / local. Si lo desea puede volver / usr / local de su propiedad por defecto con: sudo chown raíz: Rueda / usr / local

creo que está bien que los usuarios tengan permisos de escritura a /usr/local - después de todo, lo que significa que no está usando sudo en cada escritura de la estructura. No me gusta la idea de un usuario normal poseer /usr/local. Yo prefiero tener raíz (o similar) /usr/local propia, pero cambiar los permisos para que los usuarios (o al menos algún grupo privilegiado) se pueden escribir en él. Eso parece como el enfoque conceptualmente correcto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a apple.stackexchange
scroll top