Son mis permisos para / usr / local / correcta?
-
16-10-2019 - |
Pregunta
Estoy usando Homebrew para mis necesidades portuarias (parece una “limpia” bit de MacPorts).
Me puede instalar sin sudo
ing (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
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
Es más fácil
/usr/local/bin
ya está en suPATH
.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.- 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 chown
ing /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.