web-dev-qa-db-ja.com

スパースバンドルをロックして読み取り専用にすることはできますか?

スパースイメージファイルを使用すると、[情報を見る]でLocked属性を設定して、コンテンツが変更されないようにすることができます。 sparsebundlesを使用してこれを行っても、効果はないようです。

現時点では、このイージーロック機能を取得するために、スパースバンドルをスパースイメージ内に保存しています。

スパースバンドルボリュームを読み取り専用にする簡単な方法を見落としていますか?

5
noop

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を実行して、バンドル内のすべてのファイルにlockedフラグを設定することもできます。

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

Volume UUIDで始まる行を探し、その右側の値をメモします。例: D7C6180C-2178-32EF-98E6-7FB71AED2ABC

次に、カスタムマウントポイントを作成する必要があります。通常、すべてのボリュームは/Volumesにマウントされますが、それらのマウントポイントはアンマウント時に削除され、マウントポイントが存在しないため、fstabで参照されるボリュームの次のマウント試行は失敗します。したがって、ホームディレクトリに「Image」という名前のフォルダを作成するだけです。

これで、OSXを常に読み取り専用でマウントできるようになりました。ターミナルで、Sudo vifsを実行し、パスワードを入力します。あなたはvi/vimに精通していると思いますが、そうでない場合は、今がそれを読む良い機会です。

次のような行を追加して、システムに適用可能なUUIDとマウントポイントを正しい値に置き換えます。

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

次に、保存して閉じます。これで、ダブルクリックで画像をマウントできます。画像はFinderに表示され、読み取り専用になります。

5
Daniel Beck