Tunnelblick-ից համօգտագործվող պանակի միացում առանց root-ով աշխատելու
Բաց մնացող AppleScript-ը կարող է հսկել մեկ Tunnelblick պրոֆիլ և միացնել SMB համօգտագործումը որպես մուտք գործած օգտատեր՝ առանց root-կարթի և առանց գաղտնաբառ չպահանջող sudo-ի։
VPN-հաճախորդը արտոնյալ օգնության կարիք ունի ցանցը վերակազմելու համար, և այդ փաստը չափազանց լայն է կիրառվում նրա շուրջ ամեն ինչի վրա։ Սկրիպտը, որը միացնում է ֆայլային համօգտագործում, root-ի կարիք չունի, քանի որ համօգտագործումը պատկանում է մուտք գործած օգտատիրոջ սեսիային և նրա նույնականացման տվյալներին։ Միացումը արտոնյալ ուղուց դուրս հանելը վերացնում է sudo կանոնների, root-կարթերի և ներկառուցված հավելվածների փոփոխության անհրաժեշտությունը։ Մնում է փոքր applet, որը բաց է մնում, հսկում է մեկ պրոֆիլ և կատարում է մեկ փորձ։
Ինչու է սա պատկանում օգտատիրոջ սեսիային
Միացված ծավալը այն սեսիայի հատկությունն է, որը միացրել է այն։ Այլ օգտատիրոջ սեսիան այն չի տեսնում, և root-ին պատկանող միացումը վարվում է այլ կերպ, քան Finder-ի ստեղծածը։ Միացումը օգտատիրոջ սեսիայում պահելը պահպանում է այդ իմաստաբանությունը։
Արտոնյալ օգնականները գոյություն ունեն այն մասերի համար, որոնք իսկապես դրանց կարիքն ունեն՝ թունելային ինտերֆեյսի ստեղծում, երթուղիների փոփոխում, լուծիչի թարմացում։ SMB համօգտագործման միացումը այդ մասերից չէ։ Դրա հետ այնպես վարվելը, կարծես թե այդպես է, ստիպում է ընտրել առանց գաղտնաբառի sudo-ի և root սկրիպտի միջև, որը կատարվում է, երբ ոչ ոք ներկա չէ։ Երկուսն էլ ավելի մեծ ռիսկ են, քան խնդիրն արդարացնում է, և օգտատիրոջ սեսիայի մոտեցումը լիովին խուսափում է այդ ընտրությունից։
Tunnelblick-ի սեփական միացման կարթերը այստեղ փոխարինող չեն, քանի որ դրանք կատարվում են աշխատասեղանի սեսիայից դուրս և դրանց հերթականությունը հաճախորդի սկրիպտների նկատմամբ սահմանված չէ։ Վիճակի հարցումը օգտատիրոջ applet-ից ավելի փոքր մեխանիզմ է՝ ավելի քիչ ենթադրություններով։
Նախ ձեռքով ապացուցեք, որ համօգտագործումն աշխատում է
Ավտոմատացումը չի կարող տրամադրել երթուղի, թույլտվություն կամ հաշիվ, որը գոյություն չունի։ Միացրեք 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-ի միջոցով, և դա միակ կարթն է, որն անհրաժեշտ է այս նախագծին։ Կարևոր վիճակը այն տողն է, որը հաղորդվում է հենց այդ պրոֆիլի համար, ոչ թե հավելվածի առկայությունը։
Հարցումն ունի հետևանքներ, որոնք արժե նշել։ Ինտերվալից կարճ վերամիացումը կարող է աննկատ անցնել, և applet-ը բոլորովին չի տեսնում անցումը։ Դա ընդունելի է միացման պաշտպանի համար և անընդունելի այն ամենի համար, ինչը պետք է արձագանքի յուրաքանչյուր իրադարձության։ Եթե ձեզ անհրաժեշտ է իրադարձությունների ճշգրտություն, սա սխալ մեխանիզմ է, այլ ոչ թե մեխանիզմ, որին ավելի կարճ ժամաչափ է պետք։ Ընտրեք ինտերվալը՝ հաշվի առնելով այդ փոխզիջումը։
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-ի միջոցով։
Միացրեք մեկ անգամ, ապա դադարեցրեք փորձերը
Փորձի դրոշակն այն է, ինչը թույլ չի տալիս, որ սա դառնա նույնականացման տվյալներ գուշակող հանգույց։ Երբ applet-ը փորձել է, այն սպասում է միացման վիճակի փոփոխությանը, նախքան նորից փորձելը։
Այդ վարքը դիտավորյալ է։ Համօգտագործումը, որը մերժում է միացումը, սովորաբար մերժում է այն պատճառով, որը նոր փորձը չի կարող շտկել, և կրկնվող փորձերը մեկ հարցումը դարձնում են դրանց հոսք։ Դրոշակը վերականգնվում է, երբ պրոֆիլը հեռանում է միացված վիճակից, այնպես որ իրական վերամիացումը տալիս է ճիշտ մեկ նոր փորձ։ applet-ից դուրս գալը և նորից գործարկելը նույնպես վերականգնում են այն, և դա ձեռքով շրջանցումն է։ Ուղիներից ոչ մեկը չի թաքցնում ձախողումը. երկուսն էլ այն տեսանելի են թողնում Finder-ում։
Սկրիպտը գաղտնաբառ չի պարունակում, և այդպես պետք է մնա։ Թողեք միացման գործողությունը հարցնի, և թողեք բանալիների կապոցը անի այն, ինչ աջակցում է կազմակերպությունը։ Նույնականացման տվյալը URL-ի մեջ ներկառուցելը հարմարավետության սկրիպտը դարձնում է գաղտնիք, որը պետք է պտտվի։
Ինչ չի կարող անել օգնականը
Երեք սահմանափակում արժե գրել applet-ի կողքին։ Այն չի կարող դուրս հանել զբաղված ծավալը ցանցային խափանումից հետո, չի կարող երաշխավորել, որ DNS-ը և սերվերը պատրաստ են, երբ վիճակը ասում է միացված, և չի արձագանքում յուրաքանչյուր վերամիացման։
Առաջին սահմանափակումը գործնականում ամենակարևորն է։ Համօգտագործումը, որի սերվերը անհետանում է, թողնում է ծավալ, որը թվում է միացված և արգելափակում է հասանելիության ժամանակ, և քաղաքավարի ուղղումը ֆայլային գործողություններն ավարտելն ու այն դուրս հանելն է նախատեսված անջատումից առաջ։ Երկրորդը բացատրում է առաջին անհաջող փորձերի մեծ մասը՝ թունելը բարձրացված է, մինչ լուծիչը դեռ չի հասել, ուստի սպասեք և ապա մեկ անգամ ձեռքով միացրեք՝ հաստատելու համար։ Երրորդը նախկինում նշված հարցման փոխզիջումն է, այլ ոչ թե ուղղման ենթակա սխալ։
Առանց հսկողության մեքենայի կամ կառավարվող պարկի համար այս ձևավորումը սխալ ձև ունի։ Օգտագործեք ադմինիստրատորին պատկանող միացման քաղաքականություն՝ աշխատասեղանի applet-ը արտոնյալ ծառայության ընդլայնելու փոխարեն։