noo*_*oop 5 sparsebundle sparseimage macos
对于稀疏图像文件,我可以在“获取信息”中设置锁定属性以防止修改其内容。使用 sparsebundle 这样做似乎没有任何效果。
目前,我将我的 sparsebundle 存储在一个 sparseimage 中以获得这个容易锁定的功能。
我是否忽略了一种使我的 sparsebundle 卷只读的更简单方法?
Finder 似乎没有为整个包递归应用锁定标志(或在获取信息对话框中的权限更改)。如果这是您经常需要的东西,您可能需要考虑为以下建议编写服务,因此您可以从 Finder 而不是终端中执行此操作。
您可以通过运行chmod
以下命令在命令行上删除对包的写入权限:
chmod -R a-w
Run Code Online (Sandbox Code Playgroud)
键入此命令(包括尾随空格字符),然后将稀疏包的图标拖到“终端”窗口中。它应该如下所示,具体取决于稀疏包的名称及其存储位置:
chmod -R a-w /path/to/container.sparsebundle
Run Code Online (Sandbox Code Playgroud)
chmod -R u+w /path/to/container.sparsebundle
再次运行以获取写入权限。对于大型稀疏包,这些命令可能需要一段时间。
或者,您可以通过运行以下命令在包中的所有文件上设置锁定标志chflags
:
chflags -R uimmutable /path/to/container.sparsebundle
Run Code Online (Sandbox Code Playgroud)
要恢复,请运行chflags -R nouimmutable /path/to/container.sparsebundle
。
您也可以始终以只读方式安装捆绑包,以仅暂时防止更改。为此,请在终端中运行以下命令:
hdiutil attach /path/to/container.sparsebundle -readonly
Run Code Online (Sandbox Code Playgroud)
请注意,您需要始终像这样安装它以防止更改。
如果您可以容忍使用与平常不同的挂载点的映像,则可以运行配置系统以始终以只读方式挂载此映像。
首先,确定卷 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
Run Code Online (Sandbox Code Playgroud)
在此示例中,卷在 Finder 中显示为“磁盘映像”。请注意右侧的标识符 ( disk8s2
)。您需要在以下命令中输入它/dev/
:
diskutil info /dev/disk8s2
Run Code Online (Sandbox Code Playgroud)
查找以Volume 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
Run Code Online (Sandbox Code Playgroud)
然后保存并关闭。现在您可以双击挂载图像,它将显示在 Finder 中,并且是只读的。
归档时间: |
|
查看次数: |
3339 次 |
最近记录: |