macOS सिएरा: AppleScript माउंट वॉल्यूम लॉगिन के लिए पूछता रहता है


12

मेरे द्वारा उपयोग किए गए कई OS X संस्करणों के लिए:

/usr/bin/osascript -e mount volume "smb://yourserver" as user name  "yourusername" with password yourpassword

यदि यह पाठ्यक्रम उपलब्ध है तो इसने नेटवर्क शेयर का बढ़िया, अच्छा और शांत माउंट काम किया है।

अब हाल ही में मैंने macOS Sierra (10.12 सार्वजनिक बीटा, 16A238m का निर्माण) स्थापित किया है, और स्क्रिप्ट अभी भी काम करती है, हालांकि अब यह हमेशा एक लॉगिन संवाद दिखाएगा, जो "yourusername" और "yourpassword" मानों के साथ पहले से आबाद है। उपयोगकर्ता को शेयर को माउंट करने के लिए अभी भी "कनेक्ट" पर क्लिक करना होगा।

क्या किसी को पता है कि यह बीटा संस्करण में "बग" है (मैंने इसे ऐप्पल के फीडबैक ऐप के साथ रिपोर्ट किया था), या क्या यह अपेक्षित है और / या इसके लिए "फिक्स" क्या होगा?

इसे भी देखें: AppleScript प्रलेखन "माउंट वॉल्यूम"


3
यह इस तथ्य से संबंधित हो सकता है कि ऐप्पल ने /Volumesफ़ोल्डर को बंद कर दिया है जहां नेटवर्क शेयर को केवल रूट एक्सेस तक माउंट किया गया है, जिससे उपयोगकर्ता को माउंट बिंदु बनाने के लिए प्राधिकरण की आवश्यकता होती है। दुर्भाग्य से मुझे इस समय किसी काम का पता नहीं है, हालाँकि मैं कंप्यूटर पर सुडोर्स को संशोधित करने जा रहा हूँ। मेरे पास Openradar.appspot.com/radar?id=494858509955558912 पर एक खुला रडार है Apple ने पुष्टि की है कि यह बंद है।
Mattdwen

जवाबों:


14

जैसा कि Apple ने mactdwen के ओपन राडार लिंक में संदर्भित टिकट का जवाब दिया, जैसे macOS Sierra 10.12,

जब तक आप रूट में / आइटम नहीं बना सकते हैं।

इसके अलावा, AppleScript माउंट वॉल्यूम कमांड के बारे में मेरी सबसे अच्छी समझ यह है कि इसमें माउंट पॉइंट को निर्दिष्ट करने का कोई तरीका नहीं है और फलस्वरूप यह केवल/Volumes फाइंडर के मानक तंत्र के तहत वॉल्यूम की गणना करता है। इसलिए, मुझे नहीं लगता कि आप इसे AppleScript के माध्यम से कर सकते हैं।

लेकिन एक और तरीका है। आप निचले स्तर के mountकमांड का उपयोग करके एक ही चीज़ को पूरा कर सकते हैं :

mkdir -p ~/mnt
mount_smbfs "//my_username:my_password@my_hostname/share" ~/mnt

वॉल्यूम को इस तरह से बढ़ाने के बाद, आपको अपने डेस्कटॉप पर एक सामान्य "वॉल्यूम" आइकन दिखाई देना चाहिए और ~/mntजब आप फाइंडर के माध्यम से अपनी उपयोगकर्ता निर्देशिका को ब्राउज़ करेंगे तो निर्देशिका "शेयर" के रूप में दिखाई देगी।

इस दृष्टिकोण से गायब एक चीज़ किचेन में लॉगिन क्रेडेंशियल्स को बचा रही है। ऐसा करने के लिए, आपको थोड़ी और स्क्रिप्टिंग करनी होगी। कुछ इस तरह।

पासवर्ड सहेजें:

security add-generic-password -a my_username -s my_hostname -w my_password

पासवर्ड निकालें और शेयर माउंट करें:

pass=$(security find-generic-password -a my_username -s my_hostname -w)
mount_smbfs "//my_username:${pass}@my_hostname/share" ~/mnt

नोट: यदि आपके पासवर्ड में विशेष वर्ण हैं, तो आपको संभवतः URL को एनकोड करना होगा, शायद इस तरह:

pass='my !@#%%^& password'
pass=$(php -r "echo urlencode(\"$pass\");")
>>> my+%21%40%23%25%25%5E%26+password

धन्यवाद mnewt और mattdwen! यह एक अच्छा काम होना चाहिए! (और AppleScript का उपयोग करने से बेहतर एक संभव है)
Hanzaplastique

4
संभवत: यह दृष्टिकोण कुछ भी है जो फ़ाइलों के संदर्भ में होगा /Volumes/share?
जैक

यह निश्चित रूप से ऐसा कुछ भी तोड़ देगा।
Br.Bill

3

यह macOS Sierra 10.12.2 में Apple द्वारा तय किया गया है:

https://support.apple.com/en-us/HT207112


उनके "पूर्ववत" उदाहरण में एक टाइपो है। सही "पूर्ववत" तरीका होगा: sudo defaults delete /Library/Preferences/com.apple.NetworkAuthorization AllowUnknownServers(उस पंक्ति में "लिखना" हटा दिया गया)।
हनजाप्लेस्टिक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.