当我尝试以 root 身份登录时,会出现此警告。
luvpreet@DHARI-Inspiron-3542:/$ sudo su
Password:
zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?
如果我说“是”,它就会简单地登录,然后我的 shell 从 bash 更改为 zsh。
如果我说“否”,它就会这样说ncompinit: initialization aborted
并登录。
登录后,我的 shell 更改为 zsh。
我所做的所有与 zsh 相关的事情就是下载哦我的zsh来自github。
发生了什么以及为什么?
使用 - Dell 上的 Ubuntu 16.04。
答案1
您可以通过以下方式列出那些不安全的文件夹:
compaudit
“不安全”的根本原因是这些文件夹是组可写的。
有一个单行解决方案可以解决这个问题:
compaudit | xargs chmod g-w
请参见zsh、Cygwin 和不安全目录和zsh compinit:不安全的目录以供参考。
答案2
我遵循后遇到了同样的问题https://docs.npmjs.com/getting-started/fixing-npm-permissions,我用以下方法解决了它:
% cd /usr/local/share/zsh
% sudo chmod -R 755 ./site-functions
% sudo chown -R root:root ./site-functions
我在这里找到了答案:https://stackoverflow.com/questions/13762280/zsh-compinit-insecure-directories
答案3
我正在使用 WSL,上述解决方案并没有为我解决这个问题,但它们确实引导我使用了这个咒语,它确实解决了这个问题:
cd ~
compaudit | xargs chown -R "$(whoami)"
compaudit | xargs chmod -R go-w
答案4
当我运行时compaudit
,我会从 的插件目录中收到不安全目录错误oh-my-zsh
。所以我更改了plugins目录中的权限:
cd /home/${usr}/.oh-my-zsh/custom/
sudo chmod -R 755 ./plugins
为我解决了这个问题。
WSL 上的 Ubuntu 16.0.4。