Дугме за VPN ради код администратора и не успева код свих осталих, па неко додаје ред у sudoers. Тај ред обично живи дуже од проблема који је требало да реши и често даје више него што је дугмету потребно. Пре него што измените политику, проверите да ли подржани власник везе већ може да обави посао. Три услова испод одлучују да ли sudo уопште учествује.

Услов 1: подржани власник може то без sudo

На већини Linux радних површина менаџер мреже већ поседује VPN везе, а његова ауторизација иде кроз polkit, а не кроз sudo. Корисник коме је дозвољено да подигне везу може то да уради из командне линије без икаквог root правила. Проверите шта менаџер дозвољава пре него што претпоставите да је дугмету потребна привилегија. Ако је одговор да, промена у sudoers решава проблем који не постоји.

nmcli connection show
nmcli connection up "Work VPN"

Ако менаџер одбије, прочитајте зашто: правило polkit које недостаје, веза у власништву другог корисника или профил сачуван тамо где корисник не може да га прочита. Сваки од њих има подржано решење уже од sudo правила. Подизање привилегија је последње средство, а не прво.

Услов 2: правило именује једну извршну датотеку и њене аргументе

Ако је sudo заиста потребан, правило треба да именује тачну команду и, где је могуће, аргументе које сме да користи. Правило које кориснику дозвољава да покрене омотачку скрипту безбедно је само онолико колико су безбедне дозволе те скрипте, јер корисник може да измени оно што ће root извршити. Правило са џокер знаком после команде је исти проблем у краћем облику.

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

Проверите сваку путању у ланцу команде: бинарну датотеку, скрипту коју позива, конфигурациону датотеку коју чита и сваки директоријум између. Ако корисник може да пише у било коју од њих, сужено правило је у пракси неограничен root. Аргументи су такође важни, јер команда која прихвата конфигурациону путању може да се усмери на датотеку коју корисник контролише. Пишите правило за операцију, не за дугме.

Зауставите се ако је команди за рад потребна датотека коју корисник контролише. Тада је дизајн погрешан и никаква sudoers синтакса га неће учинити безбедним.

Услов 3: парсира се цела политика, не само ваш ред

Проверавајте едитором који закључава датотеку и проверава синтаксу и проверите састављену политику, а не фрагмент. Датотека која се парсира сама ипак може да поквари редослед укључивања или дуплира правило тако да се промени понашање.приручник за visudo документује и едитор који закључава и режим само провере који се овде користи.

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

Провера при неуспеху пријављује датотеку и ред, и управо тај извештај је корисни део. Поправите предвиђену измену кроз едитор уместо да насилно сачувате познату грешку, јер покварена политика може одједном да закључа све администраторе. Датотеке у директоријуму за укључивање такође траже власништво и режим које приручник захтева, иначе ће бити игнорисане или одбијене. Синтакса је само прва капија: након што прође, прочитајте правило поново и питајте шта оно заиста дозвољава.

Зауставите се ако је једини начин да измена проради искључивање провере синтаксе. То није политика, то је прекид који чека рестарт.

Опоравак: задржите сесију која још ради

Пре него што сачувате, проверите да је овлашћена административна сесија већ отворена и да постоји други пут у машину. Грешка у sudoers може да вам одузме могућност да је поправите, а дугме на радној површини није вредно тог ризика. Ако је sudo већ покварен, користите документовани пут опоравка система уместо да импровизујете свој.

sudo -n true
id

Алтернативе као што је pkexec зависе од сопствене инсталације и политике, па нису гарантовани други захтев за root. Држите локалну ауторизацију одвојено и од достављања VPN тајне: sudo правило не може да откључа одсутног агента за тајне и не задовољава MFA капије. Након исправке тестирајте нормалан налог који изводи само предвиђену операцију, затим користите уобичајене контроле менаџера.

Одлука се завршава када можете да кажете који услов је оправдао sudo, шта правило именује, да се цела политика парсира и како бисте се опоравили ако не. Привилеговани покретач који вас кошта административног приступа је лоша зделка и обично се може избећи.

Повезани чланци