如何在 EC2 上的 /mnt 中挂载 /tmp?

Cla*_*oli 10 ubuntu fstab amazon-ec2 ubuntu-12.04

我想知道在 EC2 实例上/tmp的临时存储中安装端点/mnt并授予ubuntu用户默认写入权限的最佳方法是什么。

有些人建议这样编辑 /etc/rc.local :

mkdir -p /mnt/tmp && mount --bind -o nobootwait /mnt/tmp /tmp

但是,这对我不起作用(文件不同)。

我尝试编辑默认的 fstab 条目:

/dev/xvdb /mnt auto defaults,nobootwait,comment=cloudconfig 0 2

用/tmp 替换/mnt 并给它一个umask=0777,但是由于cloudconfig,它不起作用。

我正在使用 Ubuntu 12.04。谢谢。

Eri*_*ond 13

您列出的最初建议存在一些问题,尽管它似乎朝着好的方向发展:

  1. 出于安全目的,该mkdir命令应创建具有在模式中设置的粘滞位的目录:

    mkdir -m 1777 /mnt/tmp
    
    Run Code Online (Sandbox Code Playgroud)
  2. -o nobootwait似乎没有必要,因为这不被保存/mnt/fstab

所以,我建议在/etc/rc.local以下方面尝试:

test -d /mnt/tmp || mkdir -m 1777 /mnt/tmp
mount --bind /mnt/tmp /tmp
Run Code Online (Sandbox Code Playgroud)

/etc/fstab当您停止/启动实例或创建 AMI 并运行新实例时,任何将绑定安装放入的尝试都会遇到问题,因为 /mnt 是临时存储并且所有内容(包括/mnt/tmp目录)都将消失.


Rôm*_*con 13

由于您正在运行 Ubuntu,因此更强大的方法是将Eric Hammond 的建议放入Upstart脚本中,并在安装后 立即完成绑定/mnt

# File /etc/init/mounted-mnt.conf

# mounted-mnt - Binds /tmp to /mnt/tmp

description     "Binds /tmp to /mnt/tmp"

start on mounted MOUNTPOINT=/mnt

task

script
    test -d /mnt/tmp || mkdir -m 1777 /mnt/tmp
    mount --bind /mnt/tmp /tmp
end script
Run Code Online (Sandbox Code Playgroud)

某些服务器,如 Apache/Passenger,可能会在/tmp. 一旦rc.local——启动序列中的最后一个——运行,它们就会被隐藏并混淆服务器。