umount
एक UNIX कमांड है जो पारंपरिक UNIX परिप्रेक्ष्य का पालन करता है जो एक फ़ाइल सिस्टम को अनमाउंट करना एक सिस्टम एडमिनिस्ट्रेशन कार्य है ।
इसके पीछे तर्क यह है कि किसी फ़ाइल सिस्टम को अनमाउंट करना, यदि खराब नियोजित या निष्पादित किया जाता है, तो विघटनकारी, यहां तक कि विनाशकारी हो सकता है, विशेषकर एक मल्टीसियर सिस्टम पर। तो नियमित रूप से उपयोगकर्ताओं को इस संभावित खतरनाक कमान और केवल से सुरक्षित हैं जड़ या एक विशेषाधिकार प्राप्त उपयोगकर्ता यह निष्पादित करने के लिए अनुमति दी है।
यह तब बहुत मायने रखता है जब UNIX का उपयोग सर्वर ऑपरेटिंग सिस्टम के रूप में किया जाता है, लेकिन UNIX- आधारित डेस्कटॉप OS (उदाहरण के लिए, OS X या Ubuntu ) की अन्य आवश्यकताएं होती हैं: किसी भी उपयोगकर्ता को फ्लैश ड्राइव, रिमूवेबल हार्डड्राइव आदि को अनमाउंट करने में सक्षम होना चाहिए। ।
खोजक और diskutil
( अधिक जानकारी के लिए मैन डिस्कुटिल देखें) इस तरह से काम करते हैं। उदाहरण के लिए, मैं टर्मिनल खोल सकता हूं और सफलतापूर्वक चला सकता हूं:
$ diskutil unmount /Volumes/Untitled
Volume Untitled on disk2s2 unmounted
जबकि umount
विफल:
$ umount /Volumes/Untitled
umount: unmount(/Volumes/Untitled): Operation not permitted
खोजक क्या है या 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 पर इस उत्तर पर एक नज़र डालें।)
खोजक के ऊपर बताए गए व्यवहार का समर्थन करने और diskutil
कई ऐप्पल फ्रेमवर्क का उपयोग करने के लिए:
$ 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
कई अन्य पुस्तकालयों का उपयोग करता है, लेकिन किसी भी ढांचे से जुड़ा नहीं है।)
diskutil
। यह अच्छा ज्ञान है।