Cén fáth nach féidir le crúca OpenVPN an comhad in aice lena script a aimsiú
Réitítear cosáin choibhneacha i gcrúca i gcoinne an phróisis, ní i gcoinne an script. Cumhdaigh iad le __file__, ansin seiceáil an spás ainmneacha agus an fhéiniúlacht roimh cheadanna.
Is iondúil go mbíonn crúcaí a ritheann gan earráid agus a thuairiscíonn comhad atá ar iarraidh fós ag féachaint san áit mhícheart, ní go dteipeann orthu ina gcúram. Réitítear cosáin choibhneacha i script i gcoinne eolaire oibre an phróisis, agus tosaíonn seirbhís le heolaire oibre nár roghnaigh tú. Ní hionann an comhad in aice an script agus an comhad a osclaíonn an próiseas ach amháin nuair a dhaingníonn rud éigin iad. Míníonn an bhearna sin cuid mhór de chliseadh crúcaí a léitear go mícheart mar fhadhbanna ceada.
Seiceáil an cosán roimh na ceadanna, mar is ionann earráid ceada ar an gcomhad mícheart agus an comhad mícheart fós.
Réitítear cosán coibhneach i gcoinne an phróisis, ní i gcoinne an chomhaid
Nuair a ghlaonn script ar open("policy.json"), réitíonn an t-eithne an t-ainm i gcoinne eolaire oibre reatha an phróisis. Ní ghlacann aon rud de shuíomh an script féin páirt sa chuardach sin. OpenVPN tosaíonn crúcaí ó eolaire a roghnaíonn sé féin, agus is féidir leis an rogha cd é a athrú, mar sin iompraíonn script a tástáladh de láimh óna fhillteán féin go difriúil nuair a ritheann an daemon é. Éiríonn leis an tástáil láimhe, teipeann ar rith na seirbhíse, agus ní luann líne an logála ach an t-ainm atá ar iarraidh.
Nochtann Python suíomh an script mar __file__, agus sin an rud a fhágann gur féidir daingniú. Path(__file__).resolve().parent / "policy.json" tógann cosán ón gcomhad seachas ón bpróiseas. Baineann an líne amháin sin an spleáchas ar an eolaire oibre gan aon rud a athrú maidir le pribhléidí.
Déan an cosán a dhaingniú d’aon ghnó, ansin seiceáil cad a dhéanann resolve
resolve() leanann naisc shiombalach, mar sin daingníonn suiteáil a nascann an crúca ina áit ag sprioc an naisc, ní ag an eolaire a choinníonn an nasc. Is é sin an rud a theastaíonn uait go hiondúil le himscaradh leaganaithe, agus tá sé mícheart le leagan amach a bhfuil sonraí ag teastáil uaidh in aice an naisc shiombalaigh. Socraigh cé acu a chiallaíonn an t-imscaradh, agus scríobh an cód chun teacht leis seachas an difríocht a aimsiú i dtáirgeadh. Path(__file__).parent gan resolve() coinníonn sé eolaire an naisc féin.
Má bhaineann na sonraí leis an ásc seachas leis an gclár, tóg cosán iomlán ón gcumraíocht. Códú crua ar shuíomh ceanglaíonn an crúca le leagan amach aon ósta amháin.
Siúil ceithre theorainn in ord
Tosaigh leis an eolaire oibre: cuir i gcomparáid WorkingDirectory, rogha cd OpenVPN agus aon fhilleadh a athraíonn eolaire roimh exec. Ansin deimhnigh an suíomh réitithe, mar is féidir le comhad den ainm céanna in imscaradh eile freagra a thabhairt ar an gcuardach agus an earráid a cheilt. Ansin tagann dearcadh an chórais comhad: is féidir le chroot nó le spás ainmneacha mount na seirbhíse cosán iomlán ósta a dhéanamh go simplí as láthair. Ar deireadh tá an fhéiniúlacht rochtana, ar ceist í atá scartha ó infheictheacht.
ProtectHome agus PrivateTmp ceileann siad suíomhanna éagsúla, agus ní thaispeántar ceachtar acu i liosta eolaire a tógadh ón óstach. Is féidir cosán atá ann do root i sliogán a bheith dofheicthe taobh istigh de spás ainmneacha an aonaid, agus is ar an gcúis sin nach gcruthaíonn tástáil an ordaithe chéanna lasmuigh den tseirbhís mórán.
Deisigh an cuardach gan an tseirbhís a leathnú
Ní réitíonn daingniú an chosáin ach an chéad teorainn. Ní nochtann sé eolaire a cheileann an tseirbhís, agus ní thugann sé rochtain do chuntas neamhphribhléideach ar chomhad atá le haghaidh root amháin. Nuair a ardaítear script-security athraíonn sé cé na scripteanna a rithfidh OpenVPN; níl aon éifeacht aige ar an áit a réitítear ainm coibhneach. Tá athrú an eolaire oibre don tseirbhís ar fad níos leithne ná an fhadhb, mar bogann gach cosán coibhneach eile do dheimhniú, do logáil nó do chúntóir leis.
Bíodh an ceartú caol i bhfách: cosán cinntitheach sa script, luach cumraíochta follasach do shonraí an ása, agus úinéireacht comhad a thagann leis an gcuntas faoina ritheann an crúca i ndáiríre.
Taifead fianaise a ainmníonn an teorainn
Tá trí rud i dtuairisc teipe a bhfuil úsáid inti: an cosán beacht a thriail an crúca, an timpeallacht a tháirg é, agus cé acu teorainn a dhiúltaigh. Priontáil an cosán réitithe agus an eisceacht gan ábhar an chomhaid a dhoirteadh. Dealaíonn an tríú cuid sin ancaire mícheart ó mount ceilte agus ó dhiúltú ceada, agus is trí cheartú éagsúla iad sin.
Freagraíonn an t-éileamh gur féidir le root an comhad a léamh ó theirminal ceann amháin de na ceisteanna sin agus ceann ar bith eile. Tástáil ó chomhthéacs na seirbhíse féin ina ionad.