¿Por qué OS X requiere privilegios de administrador para desmontar una unidad de la terminal usando `umount`, pero no cuando se usa Finder?

Cualquiera puede desmontar una unidad usb del Finder haciendo clic en el ícono de "expulsión" al lado. Sin embargo, solo un usuario con privilegios administrativos puede desmontar un disco del terminal utilizando umount .

¿Se umount y "expulsan" de una manera que requiere más security para umount del terminal?

Tenga en count que estoy ejecutando OS X 10.8.2

  • Montaje del sistema de files Ext3 con OS X 10.7.4
  • Abrir una window de terminal a un directory específico desde un script bash
  • ¿Cómo puedo especificar un tamaño de bloque más pequeño para un Ramdisk?
  • ¿Cómo get metadatos de files?
  • ¿Qué hace un enlace duro?
  • ¿Cómo puedo cambiar la tecla de método abreviado del keyboard para abrir Quicksilver?
  • Manejo de files de Memo de voz en el teléfono y la computadora
  • ¿Cuál es la razón técnica por la cual OS X no puede escribir en dispositivos NTFS?
  • One Solution collect form web for “¿Por qué OS X requiere privilegios de administrador para desmontar una unidad de la terminal usando `umount`, pero no cuando se usa Finder?”

    umount es un command de UNIX que se adhiere a la perspectiva tradicional de UNIX de que desmontar un sistema de files es una tarea de administración del sistema .

    La razón detrás es que desmontar un sistema de files, si está mal planificado o ejecutado, podría ser perjudicial, incluso destructivo, especialmente en un sistema multiusuario. De modo que los usuarios normales están protegidos de este command potencialmente peligroso y solo el usuario raíz o privilegiado puede ejecutarlo.

    Esto tiene mucho sentido cuando UNIX se utiliza como un sistema operativo de server, pero un sistema operativo de escritorio basado en UNIX (por ejemplo, OS X o Ubuntu ) tiene otras necesidades: cualquier usuario debería ser capaz de desmontar unidades flash, discos duros extraíbles, etc. .

    El Finder y diskutil (consulte man diskutil para get más información) funcionan de esta manera. Por ejemplo, puedo abrir Terminal y ejecutar con éxito:

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

    mientras que umount falla:

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

    ¿Qué hace el Buscador o diskutil diferente? Entre bastidores, envían una request a un daemon llamado com.apple.SecurityServer (consulte la página de manual para get más información), que otorga el derecho de desmontar el sistema de files:

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

    Esto permite a cualquier usuario desmontar una unidad sin requerir authentication adicional. (Ubuntu tiene una filosofía similar. Si está interesado, eche un vistazo a esta respuesta en AskUbuntu).

    Para admitir el comportamiento explicado anteriormente, el Finder y diskutil usan varios frameworks 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 , en el otro lado, solo está vinculado a esta biblioteca dinámica:

     $ 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 usa varias otras bibliotecas, pero no está vinculado a ningún marco).

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).