Как исправить "zsh compinit: небезопасные каталоги"?

Когда я бегу fakeroot в zsh это всегда дает мне это предупреждение:

zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]? 

Я могу продолжить, нажав у, а затем fakeroot работает.

Мне интересно, что это за сообщение об ошибке и как это исправить.

(Если я нажму н fakeroot все еще продолжается (подтверждено whoami), что мне кажется странным.)

2 ответа

Решение

Это заставило ошибку исчезнуть:

cd /usr/local/share/zsh
sudo chmod -R 755 ./site-functions
sudo chown -R root:root ./site-functions

Я все еще не уверен, что означала ошибка или почему она произошла.

Кредит: этот ответ на StackOverflow, который, в свою очередь, получил решение из Hillar

Я просто следовал тому, что там было написано.

zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]? 

Я проигнорировал это. После этого я побежал compaudit,

# compaudit

Он показал мне 2 каталога,

/usr/local/share/zsh/
/usr/local/share/zsh/site-functions/

Таким образом, небезопасный означает, что что-то не так с их разрешениями, я изменил разрешения для их защиты, и ошибка исчезла.

Я также проверил, что оба каталога были пусты, поэтому я удалил их оба, что я бы не советовал, но все же я сделал.

Чтобы исправить ошибку

zsh compinit: небезопасные файлы, запустите compaudit для списка. Игнорировать небезопасные файлы и продолжить [y] или прервать compinit [n]?

Я выполнил 2 команды:

команда 1.

compaudit

выход:

There are insecure files:
/usr/share/zsh/vendor-completions/_code

Потом побежал:

команда 2.

sudo chown root /usr/share/zsh/vendor-completions/_code

ура

Сегодня утром некоторые пакеты в моей системе обновились и оставили мне это сообщение об ошибке.

Видимо, что-то в обновлении изменило имя пользователя и группу на цифры, а не root, а так:

# There are insecure files: /usr/share/zsh/vendor-completions/_code
# sudo ls -alh
-rw-r--r-- 1  131  142 2.6K 2019-10-10 16:28 _code

Я просто изменил пользователя и группу для этого файла обратно на root и проблема ушла. Мне не нужно было менять какие-либо разрешения, и я бы предостерег от этого, если не будет понята основная причина проблемы.

sudo chown root _code && sudo chgrp root _code

После переключения 131 а также 142 вернуться к root, это сообщение об ошибке от zsh ушло.

Другие вопросы по тегам