VPN düyməsi administrator üçün işləyir, qalan hər kəs üçün uğursuz olur, ona görə də kimsə sudoers faylına bir sətir əlavə edir. Həmin sətir adətən həll etmək üçün nəzərdə tutulduğu problemdən daha uzun yaşayır və çox vaxt düymənin ehtiyacından artıq icazə verir. Siyasəti redaktə etməzdən əvvəl dəstəklənən bağlantı sahibinin artıq bu işi görə bilib-bilmədiyini yoxla. Aşağıdakı üç şərt sudo-nun ümumiyyətlə iştirak edib-etmədiyini müəyyən edir.

Şərt 1: dəstəklənən sahib bunu sudo olmadan bacarır

Əksər Linux masaüstlərində şəbəkə meneceri artıq VPN bağlantılarına sahibdir və onun avtorizasiyası sudo ilə deyil, polkit ilə keçir. Bağlantını qaldırmağa icazə verilən istifadəçi bunu heç bir root qaydası olmadan əmr sətrindən edə bilər. Düymənin imtiyaz tələb etdiyini güman etməzdən əvvəl menecerin nəyə icazə verdiyini yoxla. Cavab bəlidirsə, sudoers dəyişikliyi mövcud olmayan bir problemi həll edir.

nmcli connection show
nmcli connection up "Work VPN"

Menecer imtina edirsə, səbəbini oxu: çatışmayan polkit qaydası, başqa istifadəçiyə məxsus bağlantı və ya istifadəçinin oxuya bilmədiyi yerdə saxlanan profil. Bunların hər birinin sudo qaydasından daha dar dəstəklənən həlli var. İmtiyaz yüksəltmə ilk deyil, son çarədir.

Şərt 2: qayda bir icra faylını və onun arqumentlərini adlandırır

Əgər sudo həqiqətən tələb olunursa, qayda dəqiq əmri və mümkün olduqda istifadə edə biləcəyi arqumentləri adlandırmalıdır. İstifadəçiyə sarğı skripti işlətməyə icazə verən qayda yalnız həmin skriptin icazələri qədər təhlükəsizdir, çünki istifadəçi root-un nəyi icra edəcəyini redaktə edə bilər. Əmrdən sonra wildcard simvolu olan qayda eyni problemdir, sadəcə daha qısa formada.

sudo -l -U alice
ls -l /usr/local/sbin/vpn-up

Əmr zəncirindəki hər yolu yoxla: binar fayl, onun çağırdığı skript, oxuduğu konfiqurasiya faylı və aradakı hər hansı qovluq. Əgər onlardan hər hansı biri istifadəçi tərəfindən yazıla bilirsə, əhatələnmiş qayda faktiki olaraq məhdudiyyətsiz root-dur. Arqumentlər də vacibdir, çünki konfiqurasiya yolu qəbul edən əmr istifadəçinin nəzarət etdiyi fayla yönəldilə bilər. Qaydanı əməliyyat üçün yaz, düymə üçün deyil.

Əgər əmrin işləməsi üçün istifadəçinin nəzarət etdiyi fayl tələb olunursa, dayan. Onda dizayn səhvdir və heç bir sudoers sintaksisi onu təhlükəsiz etməyəcək.

Şərt 3: bütün siyasət təhlil olunur, təkcə sənin sətrin deyil

Faylı kilidləyən və sintaksisi yoxlayan redaktorla yoxla və fraqmenti deyil, yığılmış siyasəti yoxla. Təkbaşına təhlil olunan fayl yenə də daxiletmə sırasını poza bilər və ya davranışı dəyişəcək şəkildə qaydanı təkrarlaya bilər.visudo təlimatı həm kilidləyən redaktoru, həm də burada istifadə olunan yalnız-yoxlama rejimini sənədləşdirir.

sudo visudo -c
sudo visudo -cf /etc/sudoers.d/vpn-launcher

Yoxlama uğursuz olduqda faylı və sətri bildirir və ən faydalı hissə məhz bu hesabatdır. Nəzərdə tutulan dəyişikliyi redaktor vasitəsilə düzəlt, məlum xətanı zorla yadda saxlamağa çalışma, çünki pozulmuş siyasət bütün administratorları eyni anda kənarda qoya bilər. Daxiletmə qovluğundakı fayllar da təlimatın tələb etdiyi sahibliyə və rejimə ehtiyac duyur, əks halda onlar nəzərə alınmayacaq və ya rədd ediləcək. Sintaksis yalnız ilk qapıdır: keçdikdən sonra qaydanı yenidən oxu və onun həqiqətən nəyə icazə verdiyini soruş.

Dəyişikliyin işləməsinin yeganə yolu sintaksis yoxlamasını söndürməkdirsə, dayan. Bu siyasət deyil, yenidən başlatmanı gözləyən bir kəsintidir.

Bərpa: hələ də işləyən sessiyanı saxla

Yadda saxlamazdan əvvəl əmin ol ki, səlahiyyətli inzibati sessiya artıq açıqdır və maşına ikinci bir yol mövcuddur. Sudoers səhvi onu düzəltmək qabiliyyətini əlindən ala bilər və masaüstü düyməsi bu riskə dəyməz. Əgər sudo artıq pozulubsa, özünəməxsus bir yol uydurmaq əvəzinə sistemin sənədləşdirilmiş bərpa yolundan istifadə et.

sudo -n true
id

pkexec kimi alternativlər öz quraşdırmalarından və siyasətlərindən asılıdır, ona görə də zəmanətli ikinci root sorğusu deyillər. Lokal avtorizasiyanı VPN sirrinin verilməsindən də ayrı saxla: sudo qaydası olmayan sirr agentini aça bilməz və şlüzün MFA-sını təmin etmir. Düzəlişdən sonra normal hesabı yalnız nəzərdə tutulan əməliyyatı yerinə yetirərkən sına, sonra menecerin adi idarəetmə vasitələrindən istifadə et.

Qərar o zaman bitir ki, hansı şərtin sudo-nu əsaslandırdığını, qaydanın nəyi adlandırdığını, bütün siyasətin təhlil olunduğunu və olmasaydı necə bərpa edəcəyini deyə biləsən. Sənə inzibati girişə başa gələn imtiyazlı başladıcı pis mübadilədir və adətən qaçınıla bilən bir mübadilədir.

Əlaqəli məqalələr