[apple] OS X이 왜 ‘umount’를 사용하여 터미널에서 드라이브를 마운트 해제하는데 Finder를 사용하지 않는 경우 관리자 권한이 필요합니까?

누구나 옆에있는 “꺼내기”아이콘을 클릭하여 Finder에서 USB 드라이브를 마운트 해제 할 수 있습니다. 그러나 관리 권한이있는 사용자 만을 사용하여 터미널에서 드라이브를 마운트 해제 할 수 있습니다 umount.

인가 umount와 “꺼내기”더 많은 보안을 필요로 어떤 식 으로든 다른 umount터미널에서를?

참고 OS X 10.8.2를 실행하고 있습니다.



답변

umount파일 시스템 마운트 해제는 시스템 관리 작업 이라는 기존의 UNIX 관점을 준수하는 UNIX 명령입니다 .

그 이유는 파일 시스템 마운트를 잘못 계획하거나 실행 한 경우 특히 다중 사용자 시스템에서 파괴적이거나 파괴적 일 수 있다는 것입니다. 따라서 일반 사용자는이 잠재적으로 위험한 명령으로부터 보호되며 루트 또는 권한있는 사용자 만 실행할 수 있습니다.

이것은 UNIX가 서버 운영 체제로 사용될 때 많은 의미가 있지만 UNIX 기반 데스크탑 OS (예 : OS X 또는 Ubuntu )에는 다른 요구 사항이 있습니다. 모든 사용자는 플래시 드라이브, 이동식 하드 드라이브 등을 마운트 해제 할 수 있어야합니다. .

Finder 및 자세한 내용 diskutilman 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 라는 데몬에 요청을 보냅니다 ( 자세한 내용 은 설명서 페이지 참조 ).

$ 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)

이를 통해 모든 사용자는 추가 인증없이 드라이브를 마운트 해제 할 수 있습니다. (우분투는 비슷한 철학을 가지고 있습니다. 관심 있으시면 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여러 다른 라이브러리를 사용하지만 어떤 프레임 워크에도 연결되어 있지 않습니다.)


답변