我在树莓派2(Raspbian Jessie)上运行zsh。 zsh compinit
抱怨 /tmp
目录不安全。 因此,我检查了目录的权限:
$ compaudit
There are insecure directories:
/tmp
$ ls -ld /tmp
drwxrwxrwt 13 root root 16384 Apr 10 11:17 /tmp
显然,任何人都可以在/tmp目录中执行任何操作。这是有道理的,因为它的目的就是如此。所以我尝试了this stackoverflow question上的建议。我还尝试了其他网站上类似的建议。具体而言,建议关闭该目录上的组写权限。由于根据ls -ld
的权限设置情况,我还必须关闭“所有”写权限。所以:
$ sudo su
% chmod g-w /tmp
% chmod a-w /tmp
% exit
$ compaudit
# nothing shows up, zsh is happy
这解决了zsh的问题,但是其他程序开始出现问题。例如,每当我键入字母“l”时,gnome-terminal就会崩溃。因此,我不得不重新开放写权限,并在我的.zshrc中运行compinit -u。
我想知道:有没有更好的方法来解决这个问题?我不确定让compinit使用一个不安全的目录是一个好主意。我的dotfiles repo托管在这里,我现在运行compinit -u的文件在这里。
$fpath
中会包含/tmp
?它真的包含补全文件吗? - jackrabbit