Qu'est-ce que cela signifie et comment puis-je y remédier?
zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?
L'exécution de la compaudit
renvoie les éléments suivants:
There are insecure directories:
/usr/local/share/zsh/site-functions
zsh
zsh-completion
Alex
la source
la source
Réponses:
Cela m'a corrigé:
Crédit: une publication sur la liste de diffusion zsh
EDIT: Comme l'a souligné @biocyberman dans les commentaires. Vous devrez peut-être également mettre à jour le propriétaire de
site-functions
:Sur ma machine (OSX 10.9), je n'ai pas besoin de faire ça mais YMMV.
EDIT2: Sur OSX 10.11, seulement cela fonctionnait:
Également utilisateur: le personnel est l'autorisation par défaut correcte sur OSX.
la source
.zshenv
et.zshrc
utiliser le nouveau dossier et faire de mêmechmod
sur le nouveau dossier comme je l'ai publié avec le dossier.chmod
commande ensudo chmod -R go-w zsh
./usr/local/share/zsh/site-functions
vers/usr/local/Cellar
et je devais le fairechown -R root:staff /usr/local/Cellar
avant que cela ne fonctionne.fera l'affaire, voir http://www.wezm.net/technical/2008/09/zsh-cygwin-and-insecure-directories/
la source
compaudit
peut être utilisé pour diagnostiquer des problèmes comme ceux-ci et les résoudre.compaudit | xargs chown root
compaudit | xargs chmod g-w
ensemble avecompaudit | xargs chown root
travaillé pour moi aussi et a semblé garder HomeBrew heureux. quelqu'un peut-il expliquer ce qui se passe un peu plus.La plupart des réponses sont accompagnées d'une solution, mais ne mentionnez pas pourquoi cet avertissement se produit. Voici un extrait du compinit de ZSH :
Par conséquent, la solution implique de corriger l'un (ou tous) des éléments suivants:
définir l'utilisateur actuel comme le propriétaire de tous les répertoires / sous-répertoires / fichiers en cause:
suppression des autorisations d'écriture pour le groupe / autres pour les fichiers en cause:
Une autre approche consisterait à ignorer ces vérifications en utilisant
mais je ne le suggère pas vraiment, car cacher des problèmes sous un tapis ne résout que les problèmes à court terme.
la source
chown -R "$(whoami)"
pour les fichiers en dehors du répertoire personnel tels que/usr/local/
ne fonctionneraient pas. Selon les documents, ne serait-il pas plus logique de faire en sorte que les fichiers appartiennent à root?J'ai reçu les mêmes avertissements lorsque j'ai
sudo -i
démarré un shell root, la solution de @ chakrit ne fonctionnait pas pour moi.Mais j'ai trouvé un
-u
changement decompinit
travaux, par exemple dans votre .zshrc / zshenv ou là où vous avez appelécompinit
NB: Non recommandé pour le système de production
Voir également http://zsh.sourceforge.net/Doc/Release/Completion-System.html#Initialization
la source
Cela fonctionne pour mon Mac après la mise à jour vers High Sierra.
Supprimez l'accès en écriture de groupe:
Il est préférable de limiter la modification aux répertoires zsh.
la source
La réponse acceptée n'a pas fonctionné pour moi sur macOs Sierra (10.12.1). J'ai dû le faire récursivement à partir de / usr / local
Remarque: vous pouvez obtenir votre nom d'utilisateur avec
whoami
et votre groupe avecid -g
la source
Ces deux lignes se sont fixées pour moi.
la source
sudo chown -R $(whoami):root /usr/local/share/zsh
sudo chown -R $(whoami):root /usr/local/share/zsh/*
Sur macOS Sierra, vous devez exécuter:
sudo chown -R $(whoami):staff /usr/local
la source
Je l'ai réparé en faisant
dans mon cas, d'autres répertoires à l'intérieur du partage / ont également un groupe "personnel" affecté
la source
sur Mojave, cela a fait l'affaire:
sudo chmod go-w /usr/local/share
la source
sudo chmod -R go-w /usr/local/share
Ma suggestion serait d'exécuter compaudit, puis de simplement corriger les autorisations sur les répertoires trouvés par l'audit. Assurez-vous que les répertoires identifiés n'ont pas d'autorisations d'écriture pour le groupe ou autre.
la source
C'était la seule chose qui fonctionnait pour moi à partir de https://github.com/zsh-users/zsh-completions/issues/433#issuecomment-600582607 . Merci https://github.com/malaquiasdev !
la source
Ma machine:
Voici donc ce que j'ai fait,
exécuter
compaudit
et il vous donnera une liste des répertoires qu'il pense non sécurisés.exécuter
sudo chmod -R 755 target_directory
(exemple:sudo chmod -R 755 /usr/local/share/zsh
)Exmaple:
Retour:
donc je cours
lire la suite ici lien
la source
Ce matin, certains packages de mon système ont été mis à jour et m'ont laissé ce message d'erreur. J'utilise Ubuntu 18.04.
Apparemment, quelque chose dans la mise à jour a changé le nom d'utilisateur et le groupe en nombres, au lieu de
root
, comme suit:J'ai simplement changé l'utilisateur et le groupe pour ce fichier
root
et le problème a disparu. Je n'ai pas eu besoin de modifier les autorisations et je déconseille de le faire à moins que la cause sous-jacente du problème soit comprise.sudo chown root _code && sudo chgrp root _code
Après avoir basculé
131
et142
revenir àroot
, ce message d'erreur de zsh a disparu.la source
exécuter
compaudit
et il vous donnera une liste de répertoires qu'il pense ne sont pas sûrssudo chown -R username:root target_directory
sudo chmod -R 755 target_directory
la source
J'ai eu le même avertissement récemment sur Catalina. Une solution de contournement simple consiste à placer cela en haut de votre .zshrc
la source
Aucune des solutions énumérées n'a fonctionné pour moi. Au lieu de cela, j'ai fini par désinstaller et réinstaller Homebrew, ce qui a fait l'affaire. Les instructions de désinstallation peuvent être trouvées ici: http://osxdaily.com/2018/08/12/how-uninstall-homebrew-mac/
la source
l'exécution de cette commande a fonctionné pour moi sur mon
mac OS Catalina
:compaudit | xargs chmod g-w,o-w
la source
Solution MAC OS X:
Aussi "user: staff = utilisateur root par défaut sur OSX.
la source
J'ai eu ce problème après avoir exécuté le
google-cloud-sdk
script d'installation, qui ajoute l'achèvement de commande au shell via une entrée dans.zshrc
.Suivre les instructions de Homebrew pour configurer les complétions dans zsh a été utile.
la source