当我运行时fakeroot
它zsh
总是给我这个警告:
zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?
我可以通过按下y然后继续fakeroot
工作。
我想知道这个错误信息是什么以及如何修复它。
(如果我按下n fakeroot
仍继续(用 验证whoami
),这对我来说似乎很奇怪。)
答案1
这使得错误消失:
cd /usr/local/share/zsh
sudo chmod -R 755 ./site-functions
sudo chown -R root:root ./site-functions
不过,我仍不确定这个错误意味着什么或者为什么会发生。
信用:StackOverflow 上的这个答案进而得到解决方案zsh 邮件列表上的一篇文章
答案2
我只是按照上面所写的内容去做了。
zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?
我忽略了这些。之后,我跑了compaudit
,
# compaudit
它向我展示了两个目录,
/usr/local/share/zsh/
/usr/local/share/zsh/site-functions/
因此,不安全意味着他们的权限有问题,我改变了权限以保护他们的安全,错误就消失了。
我还检查了两个目录都是空的,所以我删除了它们,虽然我不建议这样做,但我还是这样做了。
答案3
修复错误
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
干杯
答案4
今天早上,我的系统中的某些软件包进行了更新,并留下了这个错误消息。
显然,更新中的某些内容将用户名和组更改为数字,而不是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 的这个错误消息消失了。