Кнопка 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, што называе правіла, што ўся палітыка разбіраецца і як вы б аднавілі яе, калі б не. Прывілеяваны запыскальнік, які каштуе вам адміністрацыйнага доступу, — дрэнны абмен, і звычайна ён пазбягальны.

Падобныя артыкулы