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
604   9  

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 или куда вы звонили compinit

compinit -u

NB: не рекомендуется для производственной системы

Смотрите также 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

на macOS Sierra вам нужно запустить: sudo chown -R $(whoami):staff /usr/local

эти две строки исправили для меня.

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

    Ничего не найдено.