Mac複数ユーザと"zsh compinit: insecure directories and files, run compaudit for list."
どういうこと?
- zshの補完初期化コマンド
compinit
は、セキュリティのため補完ファイルの所有者が違うと、それをロードしてくれない。 - Homebrewは全ユーザで共有のファイル置き場に置かれる: /usr/local
- Macで複数ユーザを作ると、zshの補完初期化で怒られまくる
zsh compinit: insecure directories and files, run compaudit for list.
解決策
.zshrcに、ユーザログイン時に補完ファイルの所有権を変更する処理を書く。
.zshrc
: "Multi-user Hack" && {
compaudit > /dev/null 2>&1 || {
echo "Need to change file ownership of zsh completion"
sudo -v || exit
compaudit 2>/dev/null | sudo xargs chown $(whoami)
}
}
zplug
ちなみに、zplugもプラグインや補完ファイルをロードするので、所有権を変更する必要があった。
.zshrc
: "プラグイン" && {
export ZPLUG_HOME=/usr/local/opt/zplug
: "Multi-user Hack" && {
[ "$(stat -f '%u' $ZPLUG_HOME/)" = "$(id -u)" ] || sudo chown -R $(whoami) $ZPLUG_HOME/
}
source $ZPLUG_HOME/init.zsh
}
Author And Source
この問題について(Mac複数ユーザと"zsh compinit: insecure directories and files, run compaudit for list."), 我々は、より多くの情報をここで見つけました https://qiita.com/suin/items/7b49abadc387801e8d6f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .