La butono VPN bezonas sudo: limigu la regulon, validigu la politikon
Butono sur la labortablo ne estas kaŭzo por root sen pasvorto. Kontrolu, ĉu la retadministrilo povas mem fari tion, limigu unu komandon, poste validigu la tutan politikon de sudo.
La butono VPN funkcias por la administranto kaj malsukcesas por ĉiuj aliaj, do iu aldonas linion al sudoers. Tiu linio kutime vivas pli longe ol la problemo, kiun ĝi devis solvi, kaj ĝi ofte donas pli ol la butono bezonas. Antaŭ ol vi redaktos la politikon, kontrolu, ĉu la subtenata posedanto de la konekto jam povas fari la laboron. La tri kondiĉoj sube decidas, ĉu sudo entute partoprenas.
Kondiĉo 1: la subtenata posedanto povas fari tion sen sudo
Sur la plej multaj Linux-labortabloj la retadministrilo jam posedas VPN-konektojn, kaj ĝia rajtigo iras tra polkit anstataŭ sudo. Uzanto, al kiu estas permesite levigi konekton, povas fari tion el la komandlinio sen iu ajn regulo pri root. Kontrolu, kion la administrilo permesas, antaŭ ol supozi, ke la butono bezonas privilegion. Se la respondo estas jes, la ŝanĝo en sudoers solvas problemon, kiu ne ekzistas.
nmcli connection show
nmcli connection up "Work VPN"
Se la administrilo rifuzas, legu kial: mankanta regulo pri polkit, konekto posedata de alia uzanto aŭ profilo konservita tie, kie la uzanto ne povas legi ĝin. Ĉiu el tiuj havas subtenatan riparon pli mallarĝan ol regulo pri sudo. Privilegia plialtigo estas la lasta rimedo, ne la unua.
Kondiĉo 2: la regulo nomas unu plenumeblan dosieron kaj ĝiajn argumentojn
Se sudo vere necesas, la regulo nomu la ĝustan komandon kaj, kie eble, la argumentojn, kiujn ĝi rajtas uzi. Regulo, kiu permesas al uzanto ruli envolv-skripton, estas nur tiom sekura kiom la permesoj de tiu skripto, ĉar la uzanto povas redakti tion, kion root plenumos. Regulo kun ĵokera signo post la komando estas la sama problemo en pli mallonga formo.
sudo -l -U alice
ls -l /usr/local/sbin/vpn-up
Kontrolu ĉiun vojon en la komanda ĉeno: la duuma dosiero, la skripton, kiun ĝi vokas, la agordan dosieron, kiun ĝi legas, kaj ĉiun dosierujon inter ili. Se iu el ili estas skribebla de la uzanto, la limigita regulo estas fakte senlima root. Ankaŭ argumentoj gravas, ĉar komando, kiu akceptas agordan vojon, povas esti direktita al dosiero, kiun la uzanto kontrolas. Skribu la regulon por la operacio, ne por la butono.
Haltu, se la komando bezonas uzant-kontrolatan dosieron por funkcii. Tiam la dezajno estas malĝusta, kaj neniu sudoers-sintakso igos ĝin sekura.
Kondiĉo 3: la tuta politiko analiziĝas, ne nur via linio
Validigu per la redaktilo, kiu ŝlosas la dosieron kaj kontrolas la sintakson, kaj validigu la kunmetitan politikon anstataŭ fragmenton. Dosiero, kiu analiziĝas sola, ankoraŭ povas rompi la inkludan ordon aŭ duobligi regulon tiel, ke ĝi ŝanĝas la konduton.gvidlibro de visudo dokumentas kaj la ŝlosan redaktilon kaj la reĝimon nur-kontrolan uzatan ĉi tie.
sudo visudo -c
sudo visudo -cf /etc/sudoers.d/vpn-launcher
La kontrolo raportas la dosieron kaj la linion, kiam ĝi malsukcesas, kaj ĝuste tiu raporto estas la utila parto. Riparu la celatan ŝanĝon per la redaktilo anstataŭ perforte konservi konatan eraron, ĉar rompita politiko povas ŝlosi ĉiun administranton samtempe. Dosieroj en la inkluda dosierujo ankaŭ bezonas la posedrajton kaj la reĝimon, kiujn la gvidlibro postulas, alie ili estos ignorataj aŭ rifuzataj. Sintakso estas nur la unua pordego: post kiam ĝi pasis, legu la regulon denove kaj demandu, kion ĝi efektive permesas.
Haltu, se la sola maniero igi la ŝanĝon funkcii estas malŝalti la sintaksan kontrolon. Tio ne estas politiko, tio estas interrompo atendanta restarigon.
Reakiro: konservu seancon, kiu ankoraŭ funkcias
Antaŭ ol vi konservos, certigu, ke rajtigita administra seanco jam estas malfermita kaj ke dua vojo en la maŝinon ekzistas. Eraro en sudoers povas forpreni vian kapablon ripari ĝin, kaj butono sur la labortablo ne indas tiun riskon. Se sudo jam estas rompita, uzu la dokumentitan reakiran vojon de la sistemo anstataŭ improvizi unu.
sudo -n true
id
Alternativoj kiel pkexec dependas de sia propra instalado kaj politiko, do ili ne estas garantiita dua root-peto. Tenu la lokan rajtigon aparte ankaŭ de la liverado de la VPN-sekreto: regulo pri sudo ne povas malŝlosi forestantan sekretan agenton, kaj ĝi ne plenumas la MFA de la enirejo. Post la korekto, provu la normalan konton plenumante nur la celatan operacion, poste uzu la ordinarajn kontrolojn de la administrilo.
La decido finiĝas, kiam vi povas diri, kiu kondiĉo pravigis sudo, kion la regulo nomas, ke la tuta politiko analiziĝas, kaj kiel vi reakirus, se ĝi ne farus. Privilegia lanĉilo, kiu kostas al vi la administran aliron, estas malbona interŝanĝo, kaj ĝi kutime estas evitebla.