为什么/ tmp是/ private / tmp的符号链接?


37

为什么在Mac OS X上/tmp有符号链接/private/tmp?换句话说,为什么/tmp不像Linux或BSD那样只是常规目录?我了解它的工作原理,我不介意,我只是对它背后的(历史性)推理感兴趣。

Answers:


33

AIUI是NextStep(基于OS X的基础)的保留,而NextStep做了它来支持NetBooting。这个想法是,您可以从网络托管的卷(可能是只读的,当然也可以与其他计算机共享)启动,并在启动过程的早期将本地(可写)卷挂载在/ private上。如g所述,这允许对/ var和/ tmp进行运行时修改,以及/ etc中的每台计算机设置。

不再需要此操作,因为Apple当前的NetBoot系统使用影子磁盘映像将更改存储在启动卷上的任何位置。但是现在某些程序/ docs / etc假定文件位于/ private下,因此将它们切换回原处会很麻烦...


“但是有些程序/ docs / etc” lolpun(等链接到/ private / etc)
Kevin Wheeler

5

我一直想知道同一件事。我找不到任何文档来支持它,但是通常使用此模式可以更轻松地将文件存储在另一个卷(例如硬盘驱动器)上。这样一来,驱动器就可以在一处安装(例如连接)到文件系统中。例如,当驱动器被安装在/private后的文件夹/etc/tmp以及/var随后的所有位于该另一驱动器上。

我不能说的是为什么这将是有益的。值得注意的是,然而,这三个文件夹包含“数据”的文件,如配置,临时,日志,瞬态和数据库文件,而不是包含在可执行代码/bin/sbin并且/usr文件夹。


1

不确定历史原因,但是OS X总是“重组”典型的Unix结构。/tmp不是唯一的东西/private,它也有/etc/var

也许具有更多OS X背景的人可以提出更合理的建议。


-1

/tmp是一个象征性的手段,/private/etc以维护清晰分开的2个文件系统:

  • / 可以以只读方式挂载,以防止意外或不必要的修改,并防止其被总是增长的文件(日志和临时文件)填充,

  • /private 可以以读写方式挂载,并包含任何包含可修改文件的目录。

如果您看一下,/出于相同的原因,您会注意到3个目录是相似的符号链接:

cd /
ls -al | grep '> private'

读写文件系统和只读文件系统之间的访问隔离实际上并没有使用(在MacOS X中),但是为了实现这种安全隔离,已经准备就绪。

一些管理员通过定义/private 具有适当大小和适当挂载选项(最值得注意的是nosuid)的特定文件系统来加强这种安全性分离。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.