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

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

点击这里阅读更多链接

其他回答

这两条线路已经为我固定了。

sudo chown -R _user_:root /usr/local/share/zsh

sudo chown -R _user_:root /usr/local/share/zsh/*

MAC OS X解决方案:

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

还有“user:staff = OSX上的默认根用户”。

更新所有权限正确的文件/文件夹:

Compaudit | xargs chmod g-w

您不需要使用sudo更改所有者-除非文件属于root

(在macOS BigSur上测试)

注:此答案为2012年数据。


这为我解决了问题:

$ sudo chmod -R 755 /usr/local/share/zsh/site-functions

出处:zsh邮件列表上的一个帖子


编辑:正如@biocyberman在评论中指出的那样。您可能还需要更新站点函数的所有者:

$ sudo chown -R root:root /usr/local/share/zsh/site-functions

在我的机器(OSX 10.9)上,我不需要这样做,但YMMV。

EDIT2:在OSX 10.11上,只有这样才能工作:

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

另外,user:staff是OSX上正确的默认权限。

在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