在我的 Ubuntu 部署脚本中,我编写了一个函数来保护共享内存。对于 Web 服务器来说,保护共享内存以加强安全性非常重要。您可以在下面找到代码:
echo "tmpfs /dev/shm tmpfs tdefaults,noexec,nosuid 0 0" >> /etc/fstab
当我重新启动 Web 服务器时,它就卡住了。我看不出哪里出了问题。如果你有什么想法,请告诉我。
答案1
除非您的问题中有拼写错误,否则我认为您的选择是错误的。首先,不要指定“默认值”(或 tdefaults,正如您所拥有的那样。以下是我的 shm 目录的输出,取自cat /proc/mounts
:
none /run/shm tmpfs rw,nosuid,nodev,relatime 0 0
请注意,在我的 ubuntu (12.10) 上,它安装在 /run 而不是 /dev 中,尽管我怀疑这很重要。尝试将字符串更改为
echo "tmpfs /dev/shm tmpfs rw,nosuid,nodev,relatime 0 0" >> /etc/fstab
看看会发生什么。
答案2
我认为 /dev/shm 很重要。我在 14.04 (Trusty) 上使用 noexec 安装 /dev/shm 时遇到了问题。使用 /run/shm 可以完美运行。例如
none /run/shm tmpfs rw,nodev,nosuid,noexec 0 0