我在 Raspberry Pi 2(Raspbian Jessie)上运行 zsh。zshcompinit抱怨/tmp目录不安全。所以,我检查了目录的权限:
$ compaudit
There are insecure directories:
/tmp
$ ls -ld /tmp
drwxrwxrwt 13 root root 16384 Apr 10 11:17 /tmp
Run Code Online (Sandbox Code Playgroud)
显然任何人都可以在 /tmp 目录中做任何事情。鉴于它的目的,这是有道理的。所以我尝试了关于这个 stackoverflow question的建议。我也在其他网站上尝试过类似的建议。具体来说,它建议关闭对该目录的组写入权限。由于权限如何根据ls -ld,我还必须关闭“所有”写入权限。所以:
$ sudo su
% chmod g-w /tmp
% chmod a-w /tmp
% exit
$ compaudit
# nothing shows up, zsh is happy
Run Code Online (Sandbox Code Playgroud)
这让 zsh 闭嘴。然而,其他程序开始崩溃。例如,每当我输入字母“l”时,gnome-terminal 就会崩溃。因此,我不得不重新打开写权限,然后compinit -u在我的.zshrc.
我想知道的是:有没有更好的方法来解决这个问题?我不确定让 compinit 使用不安全的目录是个好主意。我点文件回购托管 …