OS X neden `umount 'kullanarak bir sürücünün terminalden bağlantısını kesmek için yönetici ayrıcalıklarına ihtiyaç duyuyor ama Finder kullanırken değil?


21

Herkes, yanındaki "çıkar" simgesine tıklayarak bir USB sürücüsünü Finder'dan çıkarabilir. Ancak, yalnızca yönetici ayrıcalıklarına sahip bir kullanıcı, kullanan bir sürücüyü terminalden ayırabilir umount.

Are umountve "çıkarma" için daha fazla güvenlik gerektiren bir şekilde farklı umountterminali gelen?

Not OS X 10.8.2 kullanıyorum

Yanıtlar:


34

umountgeleneksel UNIX perspektifine bağlı bir UNIX komutudur, bir dosya sisteminin sökülmesinin bir sistem yönetimi görevi olduğunu gösterir .

Bunun ardındaki mantık, bir dosya sisteminin sökülmesinin, eğer iyi planlanmamış ya da uygulanmadıysa, özellikle çok kullanıcılı bir sistemde yıkıcı, hatta yıkıcı olabileceğidir. Bu nedenle, düzenli kullanıcılar bu potansiyel olarak tehlikeli komuttan korunur ve yalnızca kök veya ayrıcalıklı bir kullanıcının çalıştırmasına izin verilir.

UNIX bir sunucu işletim sistemi olarak kullanıldığında çok anlamlıdır, ancak UNIX tabanlı bir masaüstü işletim sisteminin (örneğin, OS X veya Ubuntu ) başka ihtiyaçları vardır: herhangi bir kullanıcı flash sürücüleri, çıkarılabilir sabit diskleri, vb. .

Finder ve diskutil( daha fazla bilgi için bkz. Man diskutil ) bu şekilde çalışır. Örneğin, Terminal'i açıp başarıyla çalıştırabilirim:

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

oysa umountbaşarısız olur:

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

Bulucu nedir veya diskutilfarklı mıdır? Perde arkasında onlar için bir istek gönderebilir cini denilen com.apple.SecurityServer (bkz adam sayfasını dosya sistemini kaldırmak hakkını vermektedir fazla bilgi için),:

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

Bu, herhangi bir kullanıcının ek kimlik doğrulaması gerektirmeden bir sürücünün bağlantısını kesmesini sağlar. (Ubuntu'nun da benzer bir felsefesi vardır. Eğer ilgileniyorsanız, AskUbuntu'daki bu cevaba bir bakın .)

Bulucu üzerinde açıklanan davranışı desteklemek ve diskutilbirkaç Apple çerçevesi kullanmak için:

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

umountdiğer tarafta ise sadece bu dinamik kütüphaneyle bağlantılı:

$ 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.dylibdiğer bazı kütüphaneleri kullanır, ancak herhangi bir çerçeveye bağlı değildir.)


1
Müthiş cevap! Teşekkürler. Mac’ten linux’dan geldim ve haberim yoktu diskutil. Bu olması iyi bir bilgidir.
DQdlM

Teşekkürler, umountve diskutil/ Finder arasındaki farklara ışık tutabildiğim için memnunum .
jaume
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.