web-dev-qa-db-ja.com

zsh compinit:安全でないディレクトリ、リストに対してcompauditを実行

ルートとしてログインしようとすると、この警告が表示されます。

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]? 

私が「はい」と言った場合、それは単にログインし、私のシェルはbashからzshに変わります。

私がいいえと言った場合、それはncompinit: initialization abortedとログインします。

ログイン後、シェルがzshに変わります。

私がzshに関連して行ったことは、githubからダウンロードoh-my-zshをダウンロードすることだけでした。

何が起こって、なぜですか?

使用-デルのUbuntu 16.04。

6
Luv33preet

次の方法で、これらの安全でないフォルダを一覧表示できます。

compaudit

「安全でない」の根本的な原因は、これらのフォルダがグループ書き込み可能であることです。

それを修正するための1行のソリューションがあります。

compaudit | xargs chmod g-w

参考として、 zsh、Cygwin、および安全でないディレクトリ および zsh compinit:insecure directory を参照してください。

17
Bruce Sun

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

4
Yvan Sraka

今朝、システムの一部のパッケージが更新され、このエラーメッセージが表示されました。

どうやら、アップデートで何かがユーザー名とグループを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に戻すだけで、問題はなくなりました。私はnot権限を変更する必要があり、問題の根本的な原因が理解されていない限り、そうすることに対して警告します。

Sudo chown root _code && Sudo chgrp root _code

切り替え後131および142rootに戻り、zshからのこのエラーメッセージは消えました。

2
Todd

私はWSLを使用していますが、上記の解決策では修正できませんでしたが、修正してこの呪文に導かれました。

cd ~
compaudit | xargs chown -R "$(whoami)"
compaudit | xargs chmod -R go-w
1
Dominic Sayers

compauditを実行すると、oh-my-zshのプラグインディレクトリから安全でないディレクトリエラーが発生します。だから私はプラグインディレクトリの権限を変更しました:

  • cd /home/${usr}/.oh-my-zsh/custom/
  • Sudo chmod -R 755 ./plugins

私のために問題を修正しました。

WSL上のUbuntu 16.0.4。

1
Philippe Moore