OS Xでは、「umount」を使用して端末からドライブをアンマウントするために管理者権限が必要ですが、Finderを使用する場合は必要ないのはなぜですか?


21

誰でも横にある「取り出し」アイコンをクリックすることで、FinderからUSBドライブをアンマウントできます。ただし、管理者権限を持つユーザーのみが、を使用して端末からドライブをアンマウントできumountます。

あるumountと「イジェクト」のためのより多くのセキュリティが必要です何らかの方法でさまざまなumount端末からの?

注OS X 10.8.2を実行しています

回答:


34

umountは、ファイルシステムのアンマウントがシステム管理タスクであるという伝統的なUNIXの観点に従うUNIXコマンドです。

背後にある理論的根拠は、ファイルシステムをアンマウントすると、計画または実行が不十分な場合、特にマルチユーザーシステムで破壊的、破壊的でさえある可能性があるということです。したがって、通常のユーザーはこの潜在的に危険なコマンドから保護されており、rootまたは特権ユーザーのみがこのコマンドを実行できます。

これは、UNIXをサーバーオペレーティングシステムとして使用する場合に非常に理にかなっていますが、UNIXベースのデスクトップOS(OS XやUbuntuなど)には他のニーズもあります。すべてのユーザーがフラッシュドライブ、リムーバブルハードドライブなどをアンマウントできる必要があります。

Finderとdiskutil(詳細はman diskutilを参照)はこのように機能します。たとえば、ターミナルを開いて正常に実行できます:

$ diskutil unmount /Volumes/Untitled
Volume Untitled on disk2s2 unmounted

一方、umount失敗します:

$ umount /Volumes/Untitled
umount: unmount(/Volumes/Untitled): Operation not permitted

Finderとは何diskutilですか?舞台裏では、com.apple.SecurityServer(詳細についてはmanページを参照)と呼ばれるデーモンにリクエストを送信し、ファイルシステムをアンマウントする権利を付与します。

$ tail -f /var/log/system.log
Feb  6 16:57:37 avallone.local com.apple.SecurityServer[17]: Succeeded authorizing right 'system.volume.removable.unmount' by client '/System/Library/CoreServices/Finder.app' [171] for authorization created by '/System/Library/CoreServices/Finder.app' [171] (100013,0)
Feb  6 16:57:37 avallone.local com.apple.SecurityServer[17]: Succeeded authorizing right 'system.volume.removable.unmount' by client '/usr/sbin/diskarbitrationd' [18] for authorization created by '/System/Library/CoreServices/Finder.app' [171] (100002,0)
Feb  6 17:01:46 avallone.local com.apple.SecurityServer[17]: Succeeded authorizing right 'system.volume.removable.unmount' by client '/usr/sbin/diskutil' [646] for authorization created by '/usr/sbin/diskutil' [646] (100013,0)
Feb  6 17:01:46 avallone.local com.apple.SecurityServer[17]: Succeeded authorizing right 'system.volume.removable.unmount' by client '/usr/sbin/diskarbitrationd' [18] for authorization created by '/usr/sbin/diskutil' [646] (100002,0)

これにより、ユーザーは追加の認証を必要とせずにドライブをアンマウントできます。(Ubuntuにも同様の哲学があります。興味がある場合は、AskUbuntu でこの回答をご覧ください。)

Finder上で説明した動作をサポートし、diskutilいくつかのAppleフレームワークを使用するには:

$ otool -L $(which diskutil) | grep Disk
/System/Library/PrivateFrameworks/DiskManagement.framework/Versions/A/DiskManagement (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0)
$ otool -L /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder | grep Disk
/System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0)
/System/Library/PrivateFrameworks/DiskImages.framework/Versions/A/DiskImages (compatibility version 1.0.8, current version 344.0.0)
/System/Library/PrivateFrameworks/DiskManagement.framework/Versions/A/DiskManagement (compatibility version 1.0.0, current version 1.0.0)

umount、他方では、この動的ライブラリにのみリンクされています:

$ otool -L $(which umount) 
/sbin/umount:
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

/usr/lib/libSystem.B.dylib他のいくつかのライブラリを使用しますが、どのフレームワークにもリンクされていません。)


1
素晴らしい答え!ありがとう。LinuxからMacに来たので、知りませんでしたdiskutil。それは良い知識です。
DQdlM

おかげで、/ Finder umountとの違いに光を当てることができてうれしいですdiskutil
-jaume
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.