zsh compinit:不安全的目录,运行 compaudit 获取列表

zsh compinit:不安全的目录,运行 compaudit 获取列表

当我尝试以 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。

相关内容