root म्हणून न चालवता Tunnelblick वरून शेअर माउंट करणे
उघडा राहणारा AppleScript एका Tunnelblick प्रोफाइलवर लक्ष ठेवू शकतो आणि साइन-इन केलेल्या वापरकर्त्याच्या रूपात SMB शेअर माउंट करू शकतो, root हुक किंवा पासवर्डविरहित sudo शिवाय.
VPN क्लायंटला नेटवर्क पुन्हा कॉन्फिगर करण्यासाठी विशेषाधिकारित मदतीची गरज असते, आणि ही गोष्ट त्याच्या आजूबाजूच्या सर्वांवर खूप व्यापकपणे लागू केली जाते। फाइल शेअर माउंट करणाऱ्या स्क्रिप्टला root ची गरज नसते, कारण शेअर साइन-इन केलेल्या वापरकर्त्याच्या सत्राचा आणि त्याच वापरकर्त्याच्या क्रेडेन्शियल्सचा भाग असतो। माउंट विशेषाधिकारित मार्गाबाहेर काढल्यास sudo नियम, root हुक आणि सोबत दिलेल्या अॅप्समधील बदल यांची गरज संपते। उरते ते एक छोटे अॅपलेट, जे उघडे राहते, एका प्रोफाइलवर लक्ष ठेवते आणि एकच प्रयत्न करते।
हे वापरकर्ता सत्रात का मोडते
माउंट केलेला व्हॉल्यूम हा तो माउंट करणाऱ्या सत्राचा गुणधर्म असतो। दुसऱ्या वापरकर्त्याच्या सत्राला तो दिसत नाही, आणि root च्या मालकीचे माउंट Finder ने तयार केलेल्यापेक्षा वेगळे वागते। माउंट वापरकर्ता सत्रात ठेवल्यास तो अर्थ टिकून राहतो।
विशेषाधिकारित सहाय्यक त्या भागांसाठी असतात ज्यांना खरोखर त्यांची गरज असते: टनेल इंटरफेस तयार करणे, मार्ग बदलणे, रिझॉल्व्हर अद्ययावत करणे। SMB शेअर माउंट करणे या भागांत येत नाही। ते तसे असल्यासारखे वागवल्यास पासवर्डविरहित sudo आणि कोणीही नसताना चालणारी root स्क्रिप्ट यांतून एक निवडावे लागते। दोन्हीही समस्येच्या औचित्यापेक्षा मोठे धोके आहेत, आणि वापरकर्ता सत्राचा दृष्टिकोन ही निवडच टाळतो।
Tunnelblick चे स्वतःचे कनेक्शन हुक येथे पर्याय नाहीत, कारण ते डेस्कटॉप सत्राबाहेर चालतात आणि क्लायंटच्या स्क्रिप्टशी त्यांचा क्रम निश्चित नाही। वापरकर्ता अॅपलेटमधून स्थिती विचारणे ही कमी गृहीतके असलेली लहान यंत्रणा आहे।
आधी हाताने तपासा की शेअर चालतो
ऑटोमेशन अस्तित्वात नसलेला मार्ग, परवानगी किंवा खाते देऊ शकत नाही। कोणतीही स्क्रिप्ट लिहिण्यापूर्वी VPN ला हाताने जोडा आणि शेअर Finder मध्ये उघडा। हे अयशस्वी झाल्यास स्क्रिप्ट अधिक गोंधळात टाकणाऱ्या पद्धतीने अयशस्वी होईल।
स्क्रिप्ट वापरणारी तीन मूल्ये नोंदवा: प्रोफाइलचे नाव Tunnelblick जसे दाखवते तसेच, शेअरचा URL आणि माउंटनंतर Finder दाखवणारे व्हॉल्यूम नाव। व्हॉल्यूम नाव महत्त्वाचे आहे कारण विद्यमान माउंटची तपासणी तेच वापरते, आणि फक्त नावावर आधारित तपासणी ही सोयीची सुरक्षा आहे, सर्व्हरच्या ओळखीचा पुरावा नाही। मशीनवर अद्वितीय असे नाव वापरा। त्यानंतर सर्व्हर प्रतिसाद देतोच का हे तपासा।
smbutil view //files.corp.example
osascript -e 'tell application "Tunnelblick" to get state of first configuration whose name is "Office"'
mount | grep -i smbfs
पहिला आदेश सर्व्हर प्रतिसाद देतो हे सिद्ध करतो, दुसरा प्रोफाइल नाव सुटते हे, आणि तिसरा यशस्वी माउंट कसा दिसतो ते दाखवतो। काहीही स्वयंचलित करण्यापूर्वी तिन्ही नोंदवा।
Tunnelblick मधून प्रोफाइल स्थिती वाचा
Tunnelblick त्याची कॉन्फिगरेशन्स आणि त्यांच्या स्थिती AppleScript द्वारे उघड करते, आणि या रचनेला हवा असलेला हाच एकमेव हुक आहे। महत्त्वाची स्थिती म्हणजे त्याच एका प्रोफाइलसाठी नोंदवलेली स्ट्रिंग, अॅपची उपस्थिती नाही।
विचारण्याच्या काही किंमती आहेत ज्या सांगण्यासारख्या आहेत। मध्यांतरापेक्षा लहान पुनर्जोडणी लक्षात न येता जाऊ शकते, आणि अॅपलेटला तो बदल अजिबात दिसत नाही। माउंटच्या पहारेकऱ्यासाठी हे स्वीकारार्ह आहे आणि प्रत्येक घटनेला प्रतिसाद देणाऱ्या कोणत्याही गोष्टीसाठी अस्वीकारार्ह। घटना-स्तरीय अचूकता हवी असल्यास ही चुकीची यंत्रणा आहे, टाइमर कमी करावा लागणारी यंत्रणा नाही। मध्यांतर निवडताना हा समतोल लक्षात ठेवा।
property attempted : false
on idle
set profileName to "Office"
set shareURL to "smb://files.corp.example/OfficeTeam"
set volName to "OfficeTeam"
tell application "Tunnelblick" to set vpnState to state of first configuration whose name is profileName
if vpnState is not "CONNECTED" then
set attempted to false
return 20
end if
tell application "Finder" to set mounted to (exists disk volName)
if (not mounted) and (not attempted) then
set attempted to true
try
mount volume shareURL
end try
end if
return 20
end idle
उघडे ठेवण्याच्या पर्यायासह ते अॅप्लिकेशन म्हणून निर्यात करा, नंतर sudo ऐवजी साइन-इन केलेल्या सत्रात ते सुरू करा।
एकदा माउंट करा, मग प्रयत्न थांबवा
प्रयत्न केला हे फ्लॅगच हे क्रेडेन्शियल्सचा अंदाज लावणारे फिरते चक्र होण्यापासून थांबवते। अॅपलेटने प्रयत्न केल्यावर ते पुन्हा प्रयत्न करण्यापूर्वी कनेक्शन स्थिती बदलण्याची वाट पाहते।
हे वर्तन जाणूनबुजून आहे। माउंट नाकारणारा शेअर सहसा अशा कारणामुळे नाकारतो जे पुन्हा प्रयत्न करून सुटत नाही, आणि वारंवार प्रयत्न एका विनंतीची रांग करतात। प्रोफाइल जोडलेल्या स्थितीतून बाहेर पडल्यावर फ्लॅग रीसेट होते, त्यामुळे खरी पुनर्जोडणी नेमका एकच नवा प्रयत्न निर्माण करते। अॅपलेट बंद करून पुन्हा सुरू केल्यासही तो रीसेट होतो, आणि हाच हाताने केलेला हस्तक्षेप आहे। दोन्हीपैकी कोणताही मार्ग अपयश लपवत नाही; दोन्ही ते Finder मध्ये दिसत ठेवू देतात।
स्क्रिप्ट कोणताही पासवर्ड ठेवत नाही, आणि तसेच राहिले पाहिजे। माउंट क्रियेला विचारू द्या, आणि कीचेनला संस्था जे समर्थित करते ते करू द्या। URL मध्ये क्रेडेन्शियल घालणे सोयीच्या स्क्रिप्टला बदलावे लागणारे रहस्य बनवते।
सहाय्यक काय करू शकत नाही
तीन मर्यादा अॅपलेटच्या शेजारी लिहिण्यासारख्या आहेत। तो नेटवर्क बिघाडानंतर व्यस्त व्हॉल्यूम बाहेर काढू शकत नाही, स्थिती जोडले असे सांगत असताना DNS आणि सर्व्हर तयार आहेत याची हमी देऊ शकत नाही, आणि प्रत्येक पुनर्जोडणीला प्रतिसाद देत नाही।
पहिली मर्यादा प्रत्यक्षात सर्वात महत्त्वाची आहे। ज्याचा सर्व्हर गायब होतो तो शेअर माउंट दिसणारा आणि प्रवेशाच्या वेळी अडकणारा व्हॉल्यूम मागे ठेवतो, आणि नम्र उपाय म्हणजे नियोजित डिस्कनेक्टपूर्वी फाइल क्रिया पूर्ण करून तो बाहेर काढणे। दुसरी मर्यादा पहिल्या प्रयत्नांच्या बहुतेक अपयशांचे स्पष्टीकरण देते: टनेल वर आहे पण रिझॉल्व्हर अजून पोहोचलेला नाही, म्हणून थांबा आणि नंतर पुष्टीसाठी एकदा हाताने माउंट करा। तिसरी मर्यादा आधी सांगितलेला विचारण्याचा समतोल आहे, दुरुस्त करावा लागणारा बग नाही।
देखरेख नसलेल्या मशीनसाठी किंवा व्यवस्थापित ताफ्यासाठी ही रचना चुकीच्या आकाराची आहे। डेस्कटॉप अॅपलेटला विशेषाधिकारित सेवा बनवण्याऐवजी प्रशासकाच्या मालकीचे माउंट धोरण वापरा।