这意味着什么?我该如何解决?

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

当前回答

我的机器:

System Version: macOS 10.15.4 (19E287)
Kernel Version: Darwin 19.4.0

这就是我所做的,

运行compaudit,它会给你一个它认为不安全的目录列表。 执行sudo chmod -R 755 target_directory命令 (例如:sudo chmod -R 755 /usr/local/share/zsh)

例子:

compaudit

返回:

/usr/local/share/zsh

所以我跑了

sudo chmod -R 755 /usr/local/share/zsh

点击这里阅读更多链接

其他回答

今天早上,我的系统中的一些包更新了,并给我留下了这个错误消息。我使用的是Ubuntu 18.04。

显然,更新中的某些内容将用户名和组更改为数字,而不是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切换回根目录后,来自zsh的错误消息消失了。

当我sudo -i启动根shell时,我得到了相同的警告,@chakrit的解决方案对我不起作用。

但我发现-u开关的compinit工作,例如在你的.zshrc/zshenv或你调用compinit的地方

compinit -u

注意:不建议用于生产系统

参见http://zsh.sourceforge.net/Doc/Release/Completion-System.html#Initialization

在我的mac OS Catalina上运行这个命令是有效的:

Compaudit | xargs chmod g-w,o-w

这是我在https://github.com/zsh-users/zsh-completions/issues/433#issuecomment-600582607上唯一有用的东西。感谢https://github.com/malaquiasdev !

  $ cd /usr/local/share/
  $ sudo chmod -R 755 zsh
  $ sudo chown -R root:staff zsh

在M1上工作过

ProductName:    macOS
ProductVersion: 11.1
BuildVersion:   20C69

% compaudit
/opt/homebrew/share

将组权限从775更改为755

% sudo chmod 755 /opt/homebrew/share

drwxr-xr-x   33 xenea  admin   1056 Feb  2 01:28 share