¿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?

  • Reemplazar una cadena en el nombre del directory usando una variable
  • ¿Qué command controla los límites de files abiertos?
  • Mi macbook piensa que los files .as son files zip (y no se abrirán en XCode)
  • Comando de terminal para cambiar el privilegio de "todos" a "Sin acceso"
  • ¿La licencia de Apple para OS X permite que se virtualice en una PC HP?
  • Problemas con Anki y BasicTeX
  • Tenga en count que estoy ejecutando OS X 10.8.2

  • Eliminación de adware?
  • ¿Cómo verificar cuánta batería usa cada aplicación?
  • ¿Cómo puedo actualizar mi versión de `unzip` a la versión 6.00 o superior?
  • ¿Hay un file de logging para App Nap?
  • ¿Dónde se almacenan los services?
  • No puedo detener la installation de mackeeper
  • 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).