【发布时间】:2016-04-10 18:49:34
【问题描述】:
我在 Raspberry Pi 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 存储库托管在 here,而我现在运行 compinit -u 的文件是 here。
【问题讨论】:
-
为什么 /tmp 甚至在您的
$fpath中?它实际上是否包含完成文件? -
这已为我修复使用此Link
标签: linux zsh zsh-completion