zsh compinit: небезопасные каталоги
что это значит и как я могу это исправить?
zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?
под управлением compaudit возвращает следующее:
There are insecure directories:
/usr/local/share/zsh/site-functions
9 ответов:
это исправило его для меня:
$ cd /usr/local/share/zsh $ sudo chmod -R 755 ./site-functionsкредит: сообщение в списке рассылки zsh
EDIT: как указано @biocyberman в комментариях. Возможно, Вам потребуется обновить владельца
site-functionsа также:$ sudo chown -R root:root ./site-functionsна моей машине (OSX 10.9), мне не нужно делать это, но YMMV.
EDIT2: на OSX 10.11, только это работает:
$ cd /usr/local/share/ $ sudo chmod -R 755 zsh $ sudo chown -R root:staff zshтакже пользователь: персонал является правильным по умолчанию разрешение на OSX.
compaudit | xargs chmod g-wбудет делать трюк, см. http://www.wezm.net/technical/2008/09/zsh-cygwin-and-insecure-directories/
большинство ответов приходят с решением, но не упоминайте, почему это предупреждение происходит. Вот отрывок из ZSH compinit:
по соображениям безопасности compinit также проверяет, будет ли система завершения использовать файлы, не принадлежащие root или текущему пользователю или файлы в каталогах, которые доступны для записи в мире или группе или которые не принадлежат root или текущему пользователю. Если такие файлы или каталоги будут найдены, compinit будет спросите, действительно ли должна использоваться система завершения. Чтобы избежать этих тестов и использовать все найденные файлы без запроса, используйте опцию-u, а чтобы compinit молча игнорировал все небезопасные файлы и каталоги, используйте опцию-i. эта проверка безопасности полностью пропускается, когда задана опция-C.
следовательно, решение подразумевает фиксацию одного( или всех) из следующего:
настройки текущего пользователя в качестве владельца всех файлы и каталоги/файлы в:
compaudit | xargs chown -R "$(whoami)"удаление разрешений на запись для группы / других файлов в cause:
compaudit | xargs chmod go-wдругим подходом было бы пропустить эти проверки с помощью
compinit -uно я действительно не предлагаю этого, так как скрытие проблем под ковриком решает проблемы только в краткосрочной перспективе.
я получил те же предупреждения, когда я
sudo -iзапуск корневой оболочки, решение @chakrit не работает для меня.но я нашел
-uпереключательcompinitстроительство, например, в вашем .zshrc/zshenv или куда вы звонилиcompinitcompinit -uNB: не рекомендуется для производственной системы
Смотрите также http://zsh.sourceforge.net/Doc/Release/Completion-System.html#Initialization
принятый ответ не работал для меня на macOs Sierra (10.12.1). Пришлось сделать это рекурсивно из /usr / local
cd /usr/local sudo chown -R <your-username>:<your-group-name> *Примечание: вы можете получить свое имя пользователя с помощью
whoamiи сid -g
эти две строки исправили для меня.
sudo chown -R _user_:root /usr/local/share/zsh sudo chown -R _user_:root /usr/local/share/zsh/*
я исправил это, сделав
sudo chown root:staff -R /usr/local/share/zshв моем случае другие каталоги внутри share / также имеют группу" персонал", назначенную
это работает для моего Mac после обновления до High Sierra.
удалить глобальный доступ на запись:
sudo chmod g-w /usr/local/share/zsh/site-functions sudo chmod g-w /usr/local/share/zsh
Comments