zsh compinit: insecure directories

前端 未结 23 2230
攒了一身酷
攒了一身酷 2021-01-29 17:22

What does it mean and how can I fix it?

zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compini         


        
23条回答
  •  长发绾君心
    2021-01-29 17:57

    Once you understand the cause, solution is trivial and unequivocal.

    • Cause: the directories output by compaudit have write permission by either group or others (world-writable); or those files are owned by somebody else other than root or yourself.

    • Example: In my case, compaudit gave me that:

    % compaudit 
    There are insecure directories:
    /usr/local/share/zsh/site-functions
    /usr/local/share/zsh
    

    And if we list the permission of those files/directories we have (in this case)

    % ls -lh /usr/local/share 
    total 0
    drwxr-xr-x  12 chbrandt  admin   384B Aug 14 10:45 aclocal
    drwxr-xr-x   8 chbrandt  admin   256B Aug 14 10:45 doc
    drwxr-xr-x   3 chbrandt  admin    96B Jul 24 21:00 fish
    lrwxr-xr-x   1 chbrandt  admin    36B Aug 14 10:45 gettext -> ../Cellar/gettext/0.21/share/gettext
    lrwxr-xr-x   1 chbrandt  admin    41B Aug 14 10:45 gettext-0.21 -> ../Cellar/gettext/0.21/share/gettext-0.21
    lrwxr-xr-x   1 chbrandt  admin    37B Aug 14 10:45 gtk-doc -> ../Cellar/libidn2/2.3.0/share/gtk-doc
    drwxr-xr-x   9 chbrandt  admin   288B Aug 14 10:45 info
    drwxr-xr-x  58 chbrandt  admin   1.8K Aug 14 10:45 locale
    lrwxr-xr-x   1 chbrandt  admin    41B Jul 27 17:12 luajit-2.0.5 -> ../Cellar/luajit/2.0.5/share/luajit-2.0.5
    drwxr-xr-x   5 chbrandt  admin   160B Jul 27 17:12 man
    lrwxr-xr-x   1 chbrandt  admin    33B Aug 14 10:45 nvim -> ../Cellar/neovim/0.4.4/share/nvim
    drwxrwxr-x   3 chbrandt  admin    96B Jul 24 20:57 zsh
    %
    % ls -lh /usr/local/share/zsh 
    total 0
    drwxrwxr-x  4 chbrandt  admin   128B Jul 24 21:00 site-functions
    %
    % ls -lh /usr/local/share/zsh/site-functions 
    total 0
    lrwxr-xr-x  1 chbrandt  admin    39B Jul 24 21:00 _brew -> ../../../Homebrew/completions/zsh/_brew
    lrwxr-xr-x  1 chbrandt  admin    44B Jul 24 21:00 _brew_cask -> ../../../Homebrew/completions/zsh/_brew_cask
    

    Now we easily spot the issue, don't we? Notice how zsh/ and zsh/site-functions directories differ from the others... That 'w' allowing the admin group to modify them is not appreciated by zsh.

    • Solution: Turn off that group-writable permission!
    % chmod g-w /usr/local/share/zsh 
    % chmod g-w /usr/local/share/zsh/site-functions 
    

    That's it! You're good to go. Open a new terminal and you should not see the "zsh compinit: insecure directories" message anymore ;)

提交回复
热议问题