tweaks - zsh update
zsh compinit: directorios inseguros (9)
En macOS Sierra debe ejecutar: sudo chown -R $(whoami):staff /usr/local
¿Qué significa y cómo puedo solucionarlo?
zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?
Ejecutar el compaudit
devuelve lo siguiente:
There are insecure directories:
/usr/local/share/zsh/site-functions
Estas dos líneas me han arreglado.
sudo chown -R _user_:root /usr/local/share/zsh
sudo chown -R _user_:root /usr/local/share/zsh/*
Esto funciona para mi Mac después de la actualización de High Sierra.
Eliminar el acceso de escritura global:
sudo chmod g-w /usr/local/share/zsh/site-functions
sudo chmod g-w /usr/local/share/zsh
Esto me lo arregló:
$ cd /usr/local/share/zsh
$ sudo chmod -R 755 ./site-functions
Crédito: una publicación en la lista de correo zsh
EDITAR: Como señaló @biocyberman en los comentarios. Es posible que necesite actualizar también al propietario de site-functions
del site-functions
:
$ sudo chown -R root:root ./site-functions
En mi máquina (OSX 10.9), no necesito hacer esto, sino YMMV.
EDIT2: en OSX 10.11, solo esto funcionó:
$ cd /usr/local/share/
$ sudo chmod -R 755 zsh
$ sudo chown -R root:staff zsh
También usuario: el personal es el permiso predeterminado correcto en OSX.
La mayoría de las respuestas vienen con una solución, pero no mencione por qué ocurre esta advertencia. Aquí hay un extracto del compinit de compinit :
Por razones de seguridad, compinit también comprueba si el sistema de finalización usaría archivos que no son propiedad de root o del usuario actual , o archivos en directorios que son de escritura mundial o grupal o que no son propiedad de root o del usuario actual . Si se encuentran dichos archivos o directorios, compinit preguntará si el sistema de finalización realmente debería ser utilizado. Para evitar estas pruebas y hacer que todos los archivos encontrados se usen sin preguntar, use la opción -u, y para hacer que compinit ignore silenciosamente todos los archivos y directorios inseguros use la opción -i. Esta comprobación de seguridad se omite por completo cuando se proporciona la opción -C.
Por lo tanto, la solución implica arreglar uno (o todos) de los siguientes:
estableciendo el usuario actual como el propietario de todos los directorios / subdirectorios / archivos en causa:
compaudit | xargs chown -R "$(whoami)"
eliminando permisos de escritura para grupos / otros para los archivos en causa:
compaudit | xargs chmod go-w
Otro enfoque sería omitir estos controles mediante el uso de
compinit -u
pero realmente no sugiero esto, ya que esconder problemas debajo de una alfombra solo resuelve problemas en el corto plazo.
La respuesta aceptada no funcionó para mí en macOs Sierra (10.12.1). Tuve que hacerlo recursivo de / usr / local
cd /usr/local
sudo chown -R <your-username>:<your-group-name> *
Nota: Puede obtener su nombre de usuario con whoami
y su grupo con id -g
Lo arreglé haciendo
sudo chown root:staff -R /usr/local/share/zsh
en mi caso, otros directorios dentro de compartir / también tienen asignado el grupo "staff"
Recibí las mismas advertencias cuando sudo -i
comencé un shell raíz, la solución de @ chakrit no funcionó para mí.
Pero encontré -u
interruptor de compinit
funciona, por ejemplo, en su .zshrc / zshenv o donde llamó compinit
compinit -u
NB: No recomendado para el sistema de producción
Consulte también http://zsh.sourceforge.net/Doc/Release/Completion-System.html#Initialization
compaudit | xargs chmod g-w
hará el truco, vea http://www.wezm.net/technical/2008/09/zsh-cygwin-and-insecure-directories/