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-ഉം സർവറും തയ്യാറാണെന്ന് ഉറപ്പുനൽകാനാകില്ല, ഓരോ പുനഃബന്ധനത്തിനും പ്രതികരിക്കുന്നുമില്ല.

ആദ്യ പരിധിയാണ പ്രായോഗികമായി ഏറ്റവും പ്രധാനം. സർവർ അപ്രത്യക്ഷമാകുന്ന ഷെയർ മൗണ്ട് ചെയ്തതുപോലെ തോന്നുകയും പ്രവേശനത്തിൽ തടയുകയും ചെയ്യുന്ന വോള്യം വിട്ടേക്കുന്നു, മാന്യമായ പരിഹാരം ആസൂത്രിത ഡിസ്കണക്ടിന് മുമ്പ് ഫയൽ പ്രവർത്തനങ്ങൾ പൂർത്തിയാക്കി അത് പുറത്തെടുക്കുകയാണ. രണ്ടാമത്തേത് ആദ്യ ശ്രമങ്ങളുടെ ഭൂരിഭാഗം പരാജയങ്ങളും വിശദീകരിക്കുന്നു: ടണൽ മുകളിലുണ്ട, പക്ഷേ റിസോൾവർ ഇനിയും എത്തിയിട്ടില്ല, അതിനാൽ കാത്തിരുന്ന് പിന്നീട് ഉറപ്പാക്കാൻ ഒരിക്കൽ കൈകൊണ്ട് മൗണ്ട് ചെയ്യുക. മൂന്നാമത്തേത് മുമ്പ് പറഞ്ഞ ചോദ്യത്തിന്റെ വിട്ടുവീഴ്ചയാണ, പരിഹരിക്കേണ്ട ബഗ്ഗല്ല.

മേൽനോട്ടമില്ലാത്ത യന്ത്രത്തിനോ കൈകാര്യം ചെയ്യുന്ന ഫ്ലീറ്റിനോ ഈ രൂപകൽപ്പന തെറ്റായ ആകൃതിയാണ. ഡെസ്ക്ടോപ്പ് ആപ്ലെറ്റ് പ്രത്യേകാവകാശ സേവനമാക്കി വിപുലീകരിക്കുന്നതിന് പകരം കൈകാര്യകർത്താവിന്റെ ഉടമസ്ഥതയിലുള്ള മൗണ്ട് നയം ഉപയോഗിക്കുക.

അനുബന്ധ ലേഖനങ്ങൾ