Mteja wa VPN anahitaji msaada wenye upendeleo ili kuunda upya mtandao, na ukweli huo unatumika kwa upana kupita kiasi kwa kila kitu kinachouzunguka. Skripti inayounganisha sehemu ya faili haihitaji root, kwa sababu sehemu hiyo ni mali ya kikao cha mtumiaji aliyeingia na tambulisho za mtumiaji huyo. Kuondoa uunganishaji kutoka kwenye njia yenye upendeleo kunaondoa hitaji la kanuni za sudo, ndoano za root na uhariri wa programu zilizoambatanishwa. Kinachobaki ni applet ndogo inayobaki wazi, inafuatilia profaili moja na inafanya jaribio moja.

Kwa nini hii ni sehemu ya kikao cha mtumiaji

Kiasi kilichounganishwa ni sifa ya kikao kilichokiunganisha. Kikao cha mtumiaji mwingine hakioni, na uunganishaji unaomilikiwa na root hujiendesha tofauti na ule ulioundwa na Finder. Kuweka uunganishaji katika kikao cha mtumiaji kunahifadhi semantiki hiyo.

Wasaidizi wenye upendeleo wapo kwa ajili ya sehemu zinazohitaji kwa kweli: kuunda kiolesura cha handaki, kubadilisha njia, kusasisha kitatuzi. Kuunganisha sehemu ya SMB si moja ya sehemu hizo. Kuichukulia kana kwamba ni kunalazimisha chaguo kati ya sudo isiyo na nenosiri na skripti ya root inayoendeshwa wakati hakuna mtu. Zote mbili ni hatari kubwa kuliko inavyostahili tatizo, na mbinu ya kikao cha mtumiaji inaepuka chaguo hilo kabisa.

Ndoano za muunganisho za Tunnelblick yenyewe si mbadala hapa, kwa kuwa zinaendeshwa nje ya kikao cha eneo-kazi na mpangilio wao kuhusiana na skripti za mteja haujafafanuliwa. Kuuliza hali kutoka kwa applet ya mtumiaji ni utaratibu mdogo wenye dhana chache.

Thibitisha kwanza kwa mkono kuwa sehemu inafanya kazi

Uendeshaji wa kiotomatiki hauwezi kutoa njia, ruhusa au akaunti isiyokuwepo. Unganisha VPN kwa mkono na ufungue sehemu katika Finder kabla ya kuandika skripti yoyote. Ikishindikana, skripti itashindikana kwa namna inayochanganya zaidi.

Andika thamani tatu ambazo skripti itatumia: jina la profaili kama Tunnelblick inavyoorodhesha, URL ya sehemu na jina la kiasi ambacho Finder huonyesha baada ya kuunganisha. Jina la kiasi ni muhimu kwa sababu ukaguzi wa uunganishaji uliopo unatumia jina hilo, na ukaguzi wa jina pekee ni kinga ya urahisi, si uthibitisho wa utambulisho wa seva. Tumia jina ambalo ni la kipekee kwenye mashine. Kisha thibitisha kuwa seva inajibu hata kidogo.

smbutil view //files.corp.example
osascript -e 'tell application "Tunnelblick" to get state of first configuration whose name is "Office"'
mount | grep -i smbfs

Amri ya kwanza inathibitisha kuwa seva inajibu, ya pili kuwa jina la profaili linatatuliwa, na ya tatu inaonyesha jinsi uunganishaji uliofaulu unavyoonekana. Rekodi zote tatu kabla ya kuendesha kiotomatiki chochote.

Soma hali ya profaili kutoka Tunnelblick

Tunnelblick hufichua usanidi wake na hali zake kupitia AppleScript, na hiyo ndiyo ndoano pekee ambayo muundo huu unahitaji. Hali inayojaliza ni mfuatano unaoripotiwa kwa profaili hiyo mahususi, si uwepo wa programu.

Kuuliza kuna matokeo yanayostahili kutajwa. Muunganisho upya mfupi kuliko muda unaweza kupita bila kuonekana, na applet haioni mpito huo kabisa. Hilo linakubalika kwa kinga ya uunganishaji na halikubaliki kwa kitu chochote kinachopaswa kuitikia kila tukio. Ikiwa unahitaji uaminifu wa matukio, huu ni utaratibu usiofaa na si utaratibu unaohitaji kipima muda kifupi. Chagua muda ukizingatia maafikiano hayo.

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

Ihamishe kama programu yenye chaguo la kubaki wazi, kisha izindue katika kikao kilichoingia badala ya kupitia sudo.

Unganisha mara moja, kisha acha kujaribu

Bendera ya kujaribu ni kile kinachozuia hii kuwa mzunguko unaokisia tambulisho. Baada ya applet kujaribu, inasubiri hali ya muunganisho ibadilike kabla ya kujaribu tena.

Tabia hiyo ni ya kukusudia. Sehemu inayokataa uunganishaji kwa kawaida inaukataa kwa sababu ambayo jaribio jipya haliwezi kurekebisha, na majaribio ya kurudia hubadilisha ombi moja kuwa mkondo wake. Bendera huwekwa upya wakati profaili inatoka katika hali iliyounganishwa, kwa hivyo muunganisho upya wa kweli hutoa jaribio jipya moja hasa. Kutoka na kuzindua upya applet pia kuiweka upya, na hiyo ndiyo njia ya mkono. Hakuna njia kati ya hizi mbili inayoficha kushindikana; zote mbili huiweka wazi katika Finder.

Skripti haibebi nenosiri lolote, na inapaswa kubaki hivyo. Acha operesheni ya uunganishaji iulize, na acha funguo la funguo lifanye kile ambacho shirika linaunga mkono. Kupachika tambulisho kwenye URL hubadilisha skripti ya urahisi kuwa siri inayopaswa kuzungushwa.

Kile ambacho msaidizi hawezi kufanya

Mipaka mitatu inastahili kuandikwa kando ya applet. Haiwezi kutoa kiasi kilicho na shughuli baada ya kushindikana kwa mtandao, haiwezi kuhakikisha kuwa DNS na seva ziko tayari wakati hali inasema imeunganishwa, na haitikii kila muunganisho upya.

Mpaka wa kwanza ndio muhimu zaidi kwa vitendo. Sehemu ambayo seva yake inatoweka huacha kiasi kinachoonekana kimeunganishwa na kuzuia wakati wa ufikiaji, na marekebisho ya heshima ni kumaliza shughuli za faili na kutoa kiasi kabla ya kukatwa kwa muunganisho kulikopangwa. Ya pili inaeleza mengi ya majaribio ya kwanza yaliyoshindikana: handaki liko juu wakati kitatuzi hakijafika, kwa hivyo subiri kisha unganisha kwa mkono mara moja ili kuthibitisha. Ya tatu ni maafikiano ya kuuliza ya awali, si hitilafu ya kurekebisha.

Kwa mashine isiyo na mtu au kundi linalosimamiwa, muundo huu ni umbo lisilofaa. Tumia sera ya uunganishaji inayomilikiwa na msimamizi badala ya kupanua applet ya eneo-kazi kuwa huduma yenye upendeleo.

Makala zinazohusiana