VPN müştərisi şəbəkəni yenidən konfiqurasiya etmək üçün imtiyazlı köməyə ehtiyac duyur və bu fakt ətrafındakı hər şeyə həddindən artıq geniş tətbiq olunur. Fayl paylaşımını qoşan skriptə root lazım deyil, çünki paylaşım daxil olmuş istifadəçinin sessiyasına və həmin istifadəçinin etimad məlumatlarına aiddir. Qoşmanı imtiyazlı yoldan çıxarmaq sudo qaydalarına, root qarmaqlarına və birlikdə verilən tətbiqlərdə dəyişikliklərə ehtiyacı aradan qaldırır. Qalan şey açıq qalan, bir profili izləyən və bir cəhd edən kiçik bir appletdir.

Bunun niyə istifadəçi sessiyasına aid olduğu

Qoşulmuş həcm onu qoşan sessiyanın xassəsidir. Başqa istifadəçinin sessiyası onu görmür və root-a məxsus qoşma Finder-in yaratdığından fərqli davranır. Qoşmanı istifadəçi sessiyasında saxlamaq bu semantikanı qoruyur.

İmtiyazlı köməkçilər həqiqətən ehtiyac duyan hissələr üçün mövcuddur: tunel interfeysi yaratmaq, marşrutları dəyişmək, həlledicini yeniləmək. SMB paylaşımını qoşmaq həmin hissələrdən biri deyil. Ona belə yanaşmaq parolasız sudo ilə heç kimin olmadığı anda işləyən root skripti arasında seçim etməyə məcbur edir. Hər ikisi problemin haqq qazandırdığından daha böyük riskdir və istifadəçi sessiyası yanaşması bu seçimi tamamilə aradan qaldırır.

Tunnelblick-in öz bağlantı qarmaqları burada əvəzedici deyil, çünki onlar masaüstü sessiyasından kənarda işləyir və müştərinin skriptlərinə nisbətən sıraları müəyyən edilməyib. Vəziyyəti istifadəçi appletindən soruşmaq daha az fərziyyə ilə daha kiçik mexanizmdir.

Əvvəlcə paylaşımın işlədiyini əl ilə sübut edin

Avtomatlaşdırma mövcud olmayan marşrut, icazə və ya hesab verə bilməz. Hər hansı skript yazmazdan əvvəl VPN-ə əl ilə qoşulun və paylaşımı Finder-də açın. Bu alınmasa, skript daha çaşdırıcı şəkildə alınmayacaq.

Skriptin istifadə edəcəyi üç dəyəri qeyd edin: profil adını Tunnelblick-in sadaladığı kimi, paylaşım URL-ni və qoşmadan sonra Finder-in göstərdiyi həcm adını. Həcm adı vacibdir, çünki mövcud qoşmanın yoxlanışı ondan istifadə edir və yalnız ada əsaslanan yoxlama rahatlıq qoruyucusudur, serverin kimliyinin sübutu deyil. Maşında unikal olan ad istifadə edin. Sonra serverin ümumiyyətlə cavab verdiyini təsdiqləyin.

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

Birinci əmr serverin cavab verdiyini, ikinci profil adının həll olunduğunu sübut edir, üçüncü isə uğurlu qoşmanın necə göründüyünü göstərir. Nəyisə avtomatlaşdırmazdan əvvəl hər üçünü qeydə alın.

Profil vəziyyətini Tunnelblick-dən oxuyun

Tunnelblick konfiqurasiyalarını və onların vəziyyətlərini AppleScript vasitəsilə təqdim edir və bu dizaynın ehtiyac duyduğu yeganə qarmaq budur. Əhəmiyyətli olan vəziyyət məhz həmin profil üçün bildirilən sətirdir, tətbiqin mövcudluğu deyil.

Sorğunun qeyd etməyə dəyər nəticələri var. İntervaldan qısa yenidən qoşulma nəzərdən qaça bilər və applet keçidi heç görmür. Bu qoşma qoruyucusu üçün məqbuldur və hər hadisəyə reaksiya verməli olan hər şey üçün qəbuledilməzdir. Hadisə dəqiqliyi lazımdırsa, bu yanlış mexanizmdir, daha qısa taymer tələb edən mexanizm deyil. İntervalı bu güzəşti nəzərə alaraq seçin.

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

Onu açıq qalma seçimi ilə tətbiq kimi ixrac edin, sonra sudo əvəzinə daxil olunmuş sessiyada işə salın.

Bir dəfə qoşun, sonra cəhd etməyi dayandırın

Cəhd edildi bayrağı bunun etimad məlumatlarını təxmin edən dövrəyə çevrilməsinin qarşısını alan şeydir. Applet cəhd etdikdən sonra yenidən cəhd etməzdən əvvəl bağlantı vəziyyətinin dəyişməsini gözləyir.

Bu davranış qəsdəndir. Qoşmanı rədd edən paylaşım bunu adətən yeni cəhdin düzəldə bilməyəcəyi səbəbdən edir və təkrar cəhdlər bir tələbi onların axınına çevirir. Bayraq profil qoşulmuş vəziyyətdən çıxdıqda sıfırlanır, buna görə də həqiqi yenidən qoşulma tam olaraq bir yeni cəhd yaradır. Appletdən çıxıb yenidən başlatmaq da onu sıfırlayır və bu, əl ilə müdaxilədir. İki yolun heç biri nasazlığı gizlətmir; ikisi də onu Finder-də görünən saxlayır.

Skript heç bir parol daşımır və belə qalmalıdır. Qoşma əməliyyatının soruşmasına icazə verin və açarlığın təşkilatın dəstəklədiyini etməsinə buraxın. Etimad məlumatını URL-ə yerləşdirmək rahatlıq skriptini fırladılmalı olan sirrə çevirir.

Köməkçinin edə bilmədikləri

Appletin yanında yazılmağa dəyər üç hədd var. Şəbəkə nasazlığından sonra məşğul həcmi çıxara bilmir, vəziyyət qoşuldu dedikdə DNS və serverin hazır olduğuna zəmanət verə bilmir və hər yenidən qoşulmaya reaksiya vermir.

Birinci hədd praktikada ən çox əhəmiyyət kəsb edir. Serveri yoxa çıxan paylaşım qoşulmuş görünən və girişdə bloklanan həcm qoyub gedir və nəzakətli düzəliş fayl əməliyyatlarını bitirib planlaşdırılmış ayrılmadan əvvəl həcmi çıxarmaqdır. İkinci uğursuz ilk cəhdlərin çoxunu izah edir: tunel ayaqdadır, həlledici hələ çatmayıb, ona görə gözləyin və sonra təsdiqləmək üçün bir dəfə əl ilə qoşun. Üçüncüsü əvvəlki sorğu güzəştidir, düzəldilməli səhv deyil.

Nəzarətsiz maşın və ya idarə olunan donanma üçün bu dizayn yanlış formadır. Masaüstü appletini imtiyazlı xidmətə genişləndirmək əvəzinə administratora məxsus qoşma siyasətindən istifadə edin.

Əlaqəli məqalələr