macOS Disk Permissions और External ड्राइव को समझना
Permission की दिक्कतें Mac पर external ड्राइव को access करने, बदलने या eject करने से रोक सकती हैं। यहाँ जानें कि removable storage के साथ macOS permissions कैसे काम करती हैं।
आप एक external ड्राइव लगाते हैं और फ़ाइलें पढ़ तो पाते हैं पर उसमें कुछ save नहीं कर पाते। या कोई ड्राइव जो आपके दूसरे Mac पर ठीक चलती थी, इस Mac पर लिखने नहीं देती। या external ड्राइव के कुछ फ़ोल्डर access करने की हर कोशिश पर आपसे password माँगा जाता है।
छोटा जवाब: Mac पर external ड्राइव की ज़्यादातर permission दिक्कतें “Ignore ownership on this volume” चालू करने से हल हो जाती हैं। Finder में ड्राइव चुनें, Command-I दबाएँ, और Get Info में सबसे नीचे वह box check कर दें। यह उन ownership stamps को नज़रअंदाज़ कर देता है जो ड्राइव के एक Mac से दूसरे Mac पर जाने पर बेमेल हो जाते हैं। यह सिर्फ़ APFS या HFS+ ड्राइव के लिए है — exFAT में तो कोई permissions system होता ही नहीं।
External ड्राइव पर permission की दिक्कतें इसलिए उलझन भरी होती हैं क्योंकि इनके नियम आपके Mac के internal storage से अलग होते हैं। macOS external volumes पर ownership और permissions ऐसे तरीकों से लागू करता है जो हमेशा सहज समझ में नहीं आते।
External ड्राइव पर macOS ownership कैसे संभालता है
आपके Mac की internal ड्राइव का एक साफ़ मालिक होता है: आप। आपके user account का एक ID number होता है (आमतौर पर बनाए गए पहले account के लिए 501), और यही ID आपकी बनाई हर फ़ाइल पर अंकित हो जाता है।
External ड्राइव अपने साथ उस कंप्यूटर के permission stamps लेकर चलती हैं जिसने उन पर आखिरी बार लिखा था। अगर आपने ऐसे Mac पर फ़ाइलें बनाईं जहाँ आपका user ID 501 था, और आप ड्राइव को किसी और Mac में लगाते हैं जहाँ आप भी user 501 हैं, तो सब कुछ मेल खा जाता है। पर अगर IDs मेल न खाएँ, तो permission conflicts हो जाते हैं।
यह तब आम बात है जब कई Macs के बीच ड्राइव साझा की जाती हैं, खासकर काम के माहौल में जहाँ हर मशीन पर user accounts अलग-अलग तरीके से बने होते हैं।
External volumes पर ownership नज़रअंदाज़ करना
ownership के बेमेल वाली समस्या के लिए macOS में एक built-in हल मौजूद है। Finder में external ड्राइव चुनें, Get Info खोलने के लिए Command-I दबाएँ, और सबसे नीचे “Ignore ownership on this volume” ढूँढें।
जब यह checkbox चालू होता है, तो macOS ड्राइव की हर फ़ाइल को ऐसे मानता है मानो वह मौजूदा user की हो। यह ownership stamps को पूरी तरह नज़रअंदाज़ कर देता है। ज़्यादातर removable APFS और Mac OS Extended (HFS+) ड्राइव के लिए यही default है, इसीलिए आपको आमतौर पर permission की दिक्कतों का सामना नहीं करना पड़ता।
ध्यान दें कि यह checkbox सिर्फ़ APFS और HFS+ volumes के लिए दिखता है। exFAT या FAT32 ड्राइव के लिए यह नहीं दिखता, क्योंकि उन filesystems में कोई native permission system नहीं होता।
अगर यह setting किसी वजह से बंद हो गई हो (जो formatting के बाद या कुछ खास macOS updates के बाद हो सकता है), तो permission errors आने लगते हैं। इसे दोबारा चालू कर दें और दिक्कतें गायब हो जाती हैं।
ध्यान दें: इस setting को बदलने के लिए आपको administrator access चाहिए। अगर checkbox धुँधला (grayed out) हो, तो Get Info window में सबसे नीचे lock icon पर क्लिक करें और अपना password डालें।
APFS permissions बनाम exFAT permissions
APFS ड्राइव पूरी POSIX permissions लेकर चलती हैं: owner, group और world के लिए read, write और execute के access flags। ये और बारीक नियंत्रण के लिए Access Control Lists (ACLs) भी support करती हैं। यह वही permission system है जो आपके Mac की internal ड्राइव इस्तेमाल करती है।
exFAT ड्राइव में कोई permission system होता ही नहीं। हर फ़ाइल सबके लिए सुलभ होती है। सुनने में लगता है कि इससे permission की दिक्कतें ही खत्म हो जानी चाहिए, पर macOS कभी-कभी exFAT volumes के लिए permissions गढ़ देता है, जिससे अप्रत्याशित व्यवहार हो सकता है। (नई ड्राइव के लिए filesystems के बीच चुनाव कर रहे हैं? देखें APFS vs exFAT: Which Format for Your External Drive on Mac।)
जब macOS कोई exFAT ड्राइव mount करता है, तो वह उसका ownership मौजूदा user को सौंप देता है और default permissions लागू कर देता है। आमतौर पर यह ठीक चलता है। पर अगर mount प्रोसेस में कोई error आ जाए या ड्राइव में filesystem damage हो, तो गढ़ी गई permissions गलत हो सकती हैं।
अगर कोई exFAT ड्राइव अचानक read-only हो जाए, तो वजह आमतौर पर permissions नहीं बल्कि filesystem corruption होती है। इसे जाँचने और ठीक करने के लिए Disk Utility का First Aid चलाएँ।
Full Disk Access और external ड्राइव
macOS Ventura, Sonoma और Sequoia पिछले versions की तुलना में Full Disk Access पाबंदियाँ ज़्यादा सख्ती से लागू करते हैं। ये पाबंदियाँ इस बात पर असर डालती हैं कि applications external ड्राइव के साथ कैसे जुड़ती हैं।
Full Disk Access एक privacy setting है जो तय करती है कि कौन से apps आपके storage की पूरी content — external ड्राइव समेत — access कर सकते हैं। Full Disk Access के बिना, कोई application शायद उन्हीं फ़ाइलों को खोल पाए जो आप उसे साफ़ तौर पर देते हैं, पर ड्राइव की content खुलकर browse नहीं कर सकता।
ejection के लिहाज़ से यह मायने रखता है क्योंकि Terminal जैसे diagnostic tools को ड्राइव इस्तेमाल कर रही सभी प्रोसेस देखने के लिए Full Disk Access चाहिए। इसके बिना, lsof command अधूरे नतीजे दिखाती है। आप अपनी ड्राइव पर lsof चलाते हैं, कुछ रोकता हुआ नहीं दिखता, फिर भी eject नहीं कर पाते क्योंकि असली अड़चन Terminal की नज़र से छुपी होती है। (हमारी lsof command guide for Mac users इन access patterns को और विस्तार से समझाती है।)
System Settings > Privacy & Security > Full Disk Access में जाकर Terminal (या अपने पसंदीदा terminal app) को Full Disk Access दें। इससे ejection की दिक्कतें जाँचते समय आपको पूरी तस्वीर मिलती है।
जब permissions ejection रोक देती हैं
Permission की दिक्कतें आमतौर पर ejection को सीधे नहीं रोकतीं, पर वे अप्रत्यक्ष रूप से ejection नाकाम करा देती हैं।
अगर कोई प्रोसेस आपकी external ड्राइव पर लिखने की कोशिश करता है और permission error से टकराता है, तो वह साफ़-सुथरे ढंग से नाकाम होने के बजाय बार-बार कोशिश करता रह सकता है। हर बार की कोशिश एक file handle खुला रखती है। प्रोसेस असल में एक loop में फँस जाता है — न अपना काम पूरा कर पाता है, न ड्राइव छोड़ पाता है।
यह पैटर्न आपको backup software, sync services और Spotlight जैसी system प्रोसेस के साथ दिखेगा। वे ड्राइव पर metadata या index data लिखने की कोशिश करती हैं, permissions की वजह से रोक दी जाती हैं, और कोशिश करती रहती हैं। यह उन छुपी हुई वजहों में से एक है जो आम “disk in use” error के पीछे होती हैं — बाकी सामान्य संदिग्धों के लिए देखें हमारी macOS disk in use troubleshooting guide।
मूल permission समस्या को ठीक करने से (आमतौर पर “Ignore ownership on this volume” चालू करके) ejection की दिक्कत भी हल हो जाती है।
External ड्राइव पर permissions ठीक करना
Disk Utility का पुराना “Repair Disk Permissions” feature macOS El Capitan में हटा दिया गया था। यह कभी सिर्फ़ boot ड्राइव की system फ़ाइलों पर ही लागू होता था, इसलिए व्यापक गलतफ़हमी के बावजूद यह external ड्राइव के लिए कभी प्रासंगिक था ही नहीं।
External ड्राइव के लिए सबसे करीबी विकल्प है ownership और permissions को हाथ से reset करना:
sudo chown -R $(whoami) /Volumes/YourDriveName/
sudo chmod -R u+rw /Volumes/YourDriveName/
यह आपके user account को ड्राइव की हर चीज़ का ownership और read-write access दे देता है। ऐसा सिर्फ़ निजी ड्राइव पर करें, उन साझा ड्राइव पर नहीं जहाँ दूसरे users को अपनी permissions बनाए रखनी होती हैं।
कम आक्रामक हल के लिए, बस पहले बताए अनुसार “Ignore ownership on this volume” चालू कर दें।
Encrypted ड्राइव और permissions
अगर आपकी external ड्राइव APFS encryption से encrypted है, तो उसे mount करने के लिए आपको encryption password चाहिए। पर mount होने के बाद permissions सामान्य रूप से ही काम करती हैं।
FileVault से encrypted external ड्राइव में कभी-कभी permission की दिक्कतें पैदा हो सकती हैं, अगर encryption metadata बेमेल हो जाए। अगर किसी encrypted ड्राइव पर permission errors आ रहे हों, तो ड्राइव को lock (eject) करके फिर unlock (password से mount) करके देखें। इससे macOS को encryption context दोबारा स्थापित करना पड़ता है और अक्सर permission की गड़बड़ियाँ हल हो जाती हैं।
सब कुछ मिलकर ठीक से चले, इसके लिए
Permission की दिक्कतें, ejection की नाकामी और filesystem errors अक्सर एक-दूसरे को बढ़ाते हैं। एक permission error किसी background प्रोसेस को अटका देता है, जो ejection रोक देती है, जिससे ड्राइव ठीक से disconnect नहीं होती, जिससे filesystem damage होता है, जो नए permission errors पैदा कर देता है।
इस चक्र को तोड़ने की शुरुआत सही ejection से होती है। जब आपकी ड्राइव eject न हो रही हो और आपको शक हो कि इसमें permission की दिक्कतें शामिल हैं, तो Ejecta अटकी हुई प्रोसेस को पहचान सकता है और आपको उसे साफ़-सुथरे ढंग से quit करने देता है। वहाँ से, मूल permission समस्या ठीक कर लें ताकि दिक्कत दोबारा न आए।
External ड्राइव पर permissions उतनी पेचीदा नहीं जितनी लगती हैं, बशर्ते आप ownership के मॉडल को समझ लें। ज़्यादातर दिक्कतें एक ही checkbox से हल हो जाती हैं। पर जब कुछ ज़्यादा पेचीदा चल रहा हो, तो यह जानना कि कहाँ देखना है, सारा फ़र्क डाल देता है।
अगर आप हर बार Terminal इस्तेमाल नहीं करना चाहते, तो Ejecta आपको ठीक-ठीक दिखाता है कि कौन सा process आपके drive को रोक रहा है — और सीधे आपके menu bar से एक क्लिक में उसे बंद कर देता है।
अभी खरीदें — $9.99