情况是此应用程序需要/tmp
中的更多空间。目前我的tmp
文件夹位于root的分区中。为了利用更大的空间,临时创建一个tmp
符号链接到另一个分区是否安全?
答案 0 :(得分:8)
您可以:
,而不是重命名和/或符号链接mount --bind /path/to/dir/with/plenty/of/space /tmp
当你完成时umount /tmp
。
如果您在关键任务服务器上,在执行上述操作之前,您可以检查是否有任何程序正在使用/ {tmp lsof /tmp
。
注意:以root身份运行所有命令。
答案 1 :(得分:4)
这取决于......
在启动应用程序之前,更好的选择可能是设置TMPDIR
环境变量以指向此位置。您的应用程序可能会考虑此变量(但您需要测试)。应用程序本身也可能有一些设置或一些其他变量来设置临时位置(检查手册)。
至于制作符号链接,运行在/tmp
中打开文件的应用程序不应该感知到这种更改(i节点编号不会改变;即使你删除了/tmp
,打开的文件也会在之后解除分配它们被当前打开它们的所有进程关闭。
如果其他应用程序希望在/tmp
中找到某些内容(例如,将尝试打开/tmp/.X11-unix
),则可能会出现问题。这样的应用程序会出错。您可以尝试通过在创建符号链接之前将新tmp中的符号链接添加到原始tmp中的符号链接(符号链接必须正确 /tmp
重命名后)。它可能不适用于安全性或有缺陷的应用程序。
然而有一些机会制动仍然存在(重命名和符号链接不是重叠操作,因此某些应用程序在删除时仍然可以访问/tmp
,但尚未创建符号链接。)
所以这取决于你在这台机器上运行的东西。
如果您可以重新启动计算机并可以访问它的控制台(物理访问,LOM,虚拟机吊顶等)您可以将操作系统带到"单个用户" mode(telinit 1
),make symlink并重启。或者,您可以修改/etc/fstab
来执行mount --bind
。
如果你有Redhat / CentOS或派生分发,如果启用了SElinux,可能会出现问题。
答案 2 :(得分:1)
如果它是忙碌或关键任务服务器我不会这样做,因为可能有一个重要的程序试图创建一个文件而/ tmp丢失。或者它可能想要重命名文件。但是在适度使用的服务器上,特别是当您可以暂停应用程序时,您可以尝试它。
目录中打开套接字/ fifos可能会出现一些问题。这取决于Linux发行版还有多少仍在使用/ tmp。像X11,屏幕,kde / gnome这样的东西都是候选人。所以你最好先用lsof检查。
如果/ tmp是一个挂载点,则可能无法重命名它。
最安全的方法是在单用户模式下启动,或从外部启动媒体启动以进行更改。然后它是非常安全的(只要你不使用SELinux)。