659

それはどういう意味ですか、どうすれば修正できますか?

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
4

28 に答える 28

855

これは私のためにそれを修正しました:

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

クレジット: zsh メーリング リストへの投稿


編集:コメントで@biocybermanが指摘したように。次の所有者も更新する必要がある場合がありsite-functionsます。

$ 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

また、OSX では user:staff が正しいデフォルトの権限です。

于 2012-12-09T08:07:40.343 に答える
670

グループ書き込み権限を削除する

compaudit | xargs chmod g-w

トリックを行います。

http://www.wezm.net/technical/2008/09/zsh-cygwin-and-insecure-directories/を参照してください

于 2014-03-31T03:54:46.503 に答える
34

このコマンドは、すべてのファイル/フォルダーを正しいアクセス許可で更新します。

compaudit | xargs chmod g-w

ファイルがルートに属していない限り、sudo所有者を変更するために使用する必要はありません

(macOS BigSur でテスト済み)

于 2021-03-02T01:45:22.610 に答える
27

ほとんどの回答は本格的な解決策を提供しないため、この回答は主に私が将来使用するための参照です。ここにあります:

ファーストラン:

compinit

compaudit上記が機能しない場合に使用

出力されたパスごとに、次のコマンドを実行します。

sudo chown $(whoami) PATH_HERE

sudo chmod -R 755 PATH_HERE

簡単な例として、compinit の実行後に出力されるパスの 1 つが「/usr/local/share/zsh」であるとします。それで:

sudo chown $(whoami) /usr/local/share/zsh

sudo chmod -R 755 /usr/local/share/zsh
于 2020-07-30T11:59:27.367 に答える
15

受け入れられた答えは、macOs Sierra (10.12.1) ではうまくいきませんでした。/usr/local から再帰的に実行する必要がありました

cd /usr/local
sudo chown -R <your-username>:<your-group-name> *

注:whoamiユーザー名とグループを取得できますid -g

于 2016-12-02T16:01:54.337 に答える
12

MAC OS X ソリューション:

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

また、「user:staff = OSX のデフォルトの root ユーザー。

于 2020-06-05T22:18:09.357 に答える