5

С файлами sparseimage я могу установить атрибут Locked в «Get Info», чтобы предотвратить изменение его содержимого. Делать это с разреженными пучками не имеет никакого эффекта, как кажется.

В данный момент я храню свой sparsebundle внутри sparseimage, чтобы получить эту функцию легкой блокировки.

Я упускаю из виду более простой способ сделать мой редкий том только для чтения?

1 ответ1

5

Похоже, что Finder рекурсивно не применяет флаг Locked (или изменения разрешений в диалоге Get Info ) для всего пакета. Если это то, что вам регулярно нужно, вы можете заняться написанием сервиса для следующих предложений, так что вы можете сделать это из 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 и будет доступен только для чтения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .