如何使用 fstab 正确绑定 chroot 监狱内的目录?

如何使用 fstab 正确绑定 chroot 监狱内的目录?

我在 Debian Wheezy 上运行 nginx、PHP-FPM 和 MySQL。我已经debootstrap为 中的每个单独的虚拟主机设置了 chroot Jails(使用) /srv/。一切都像人们预期的那样工作,但每次重新启动后我都必须手动mount --bind /proc /srv/chrootjail/procmount --bind /run/mysqld /srv/chrootjail/run/mysqld.

这就是为什么我将以下几行添加到/etc/fstab

/proc       /srv/chrootjail/proc       none rw,bind 0 0
/run/mysqld /srv/chrootjail/run/mysqld none rw,bind 0 0

/srv/chrootjail/proc已正确安装,但/srv/chrootjail/run/mysqld确实不是我找不到原因。/srv/chrootjail/run/mysqld尽管/run/mysqld.不过,mount -a解决了问题。由于显而易见的原因,这不是我所希望的解决方案。

有人看到我在这里做错了什么吗?

答案1

我对实际情况的了解非常有限mount --bind,但我想我可能已经弄清楚为什么我会/run/mysqld特别面临这个问题。我刚刚注意到/run(以前/var/run)是一个 tmpfs因此在重新启动期间它会被清空。所以我的猜测是 解析/run/mysqld时不存在。如果需要的话,/etc/fstab初始化脚本/etc/init.d/mysql会检查并创建它:/run/mysqld

# Could be removed during boot
test -e /run/mysqld || install -m 755 -o mysql -g root -d /run/mysqld

作为解决方法,我只是mount -a在该行之后添加了一条。我想我可以让它在任何地方(?)但在/run(或/var/run)内部创建 mysqld 文件夹。然而,如果没有人能告诉我更好的方法来做到这一点,我会坚持这个解决方法。谢谢你的时间!

相关内容