对于 sparseimage 文件,我可以在“获取信息”中设置 Locked 属性以防止修改其内容。对于 sparsebundles 这样做似乎没有效果。
目前,我将 sparsebundle 存储在 sparseimage 中以获得此易锁功能。
我是否忽略了使稀疏束卷变为只读的更简单的方法?
答案1
Finder 似乎不适用已锁定标志(或权限更改获取信息对话框)以递归方式对整个包执行此操作。如果您经常需要这样做,您可能需要考虑为以下建议编写一个服务,这样您就可以从 Finder 而不是终端执行此操作。
您可以通过运行以下命令在命令行上删除该软件包的写权限chmod
:
chmod -R a-w
键入此命令(包括尾随空格字符),然后将稀疏包的图标拖到终端窗口上。它应该看起来像这样,具体取决于稀疏包的名称及其存储位置:
chmod -R a-w /path/to/container.sparsebundle
运行chmod -R u+w /path/to/container.sparsebundle
以再次获取写入权限。对于大型稀疏束,这些命令可能需要一段时间。
或者,您可以设置锁定通过运行以下命令在包中的所有文件上添加标志chflags
:
chflags -R uimmutable /path/to/container.sparsebundle
要恢复,请运行chflags -R nouimmutable /path/to/container.sparsebundle
。
您也可以始终以只读方式挂载该包,以暂时阻止更改。为此,请在终端中运行以下命令:
hdiutil attach /path/to/container.sparsebundle -readonly
请注意,您需要始终像这样安装它以防止发生更改。
如果您可以容忍图像使用与平常不同的挂载点,则可以运行配置系统以始终以只读方式挂载该图像。
首先,确定卷的 UUID。挂载稀疏包,然后diskutil list
在命令行上运行。查找与您的卷同名的条目,如下所示:
/dev/disk8
#: TYPE NAME SIZE IDENTIFIER
0: Apple_partition_scheme *102.4 MB disk8
1: Apple_partition_map 32.3 KB disk8s1
2: Apple_HFS Disk Image 102.4 MB disk8s2
在此示例中,卷在 Finder 中显示为“磁盘映像”。请注意右侧的标识符 ( disk8s2
)。您需要在 之后输入以下命令/dev/
:
diskutil info /dev/disk8s2
查找以以下内容开头的行卷 UUID,并记下其右边的值,例如D7C6180C-2178-32EF-98E6-7FB71AED2ABC
现在我们只需要创建一个自定义挂载点。通常,每个卷都安装在 中/Volumes
,但卸载时会删除这些挂载点,并且下次尝试安装 中引用的卷时fstab
将失败,因为挂载点不存在。因此,只需在您的主目录中创建一个名为“Image”的文件夹即可。
现在我们可以将 OS X 始终以只读方式挂载。在终端中,运行并输入您的密码。我假设您对/sudo vifs
足够熟悉,如果不熟悉,现在是阅读它的好时机。vi
vim
添加如下行,替换适用于您的系统的 UUID 和挂载点的正确值:
UUID=D7C6180C-2178-32EF-98E6-7FB71AED2A56 /Users/danielbeck/Image hfs ro
然后保存并关闭。现在您可以双击安装该映像,它将显示在 Finder 中,并且是只读的。