是否可以锁定稀疏束以使其变为只读?

是否可以锁定稀疏束以使其变为只读?

对于 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足够熟悉,如果不熟悉,现在是阅读它的好时机。vivim

添加如下行,替换适用于您的系统的 UUID 和挂载点的正确值:

UUID=D7C6180C-2178-32EF-98E6-7FB71AED2A56 /Users/danielbeck/Image hfs ro

然后保存并关闭。现在您可以双击安装该映像,它将显示在 Finder 中,并且是只读的。

相关内容