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 અને સર્વર તૈયાર છે તેની બાંયધરી આપી શકતું નથી, અને દરેક પુનઃજોડાણને પ્રતિસાદ આપતું નથી.
પહેલી મર્યાદા વ્યવહારમાં સૌથી મહત્વની છે. જેનું સર્વર અદૃશ્ય થાય તે શેર માઉન્ટ દેખાતું અને ઍક્સેસ વખતે અટકતું વોલ્યુમ પાછળ છોડે છે, અને નમ્ર ઉપાય એ છે કે આયોજિત ડિસ્કનેક્ટ પહેલા ફાઇલ ક્રિયાઓ પૂરી કરીને તેને બહાર કાઢવું. બીજી મર્યાદા પહેલા પ્રયાસોની મોટાભાગની નિષ્ફળતા સમજાવે છે: ટનલ ઉપર છે પણ રિઝોલ્વર હજી પહોંચ્યું નથી, તેથી રાહ જુઓ અને પછી ખાતરી માટે એક વાર હાથે માઉન્ટ કરો. ત્રીજી મર્યાદા પહેલા કહેલી પૂછપરછની સમતુલા છે, સુધારવા જેવો બગ નથી.
દેખરેખ વગરની મશીન કે સંચાલિત ફ્લીટ માટે આ રચના ખોટા આકારની છે. ડેસ્કટોપ એપ્લેટને વિશેષાધિકારવાળી સેવા બનાવવાને બદલે વ્યવસ્થાપકની માલિકીની માઉન્ટ નીતિ વાપરો.