Atvikaskrá sem heldur áfram að stækka hættir að stækka um leið og eitthvað endurskapar hana, og villan segir að heimild sé hafnað. Hinn freistandi lærdómur er að atvikaskráin sjálf þurfi fleiri heimildir, en skráin gæti þegar verið skrifanleg fyrir sama reikning. Að bæta við núverandi nafni og að búa til nýtt nafn eru tvær ólíkar prófanir, og aðeins sú seinni ráðfærir sig við möppuna.

Að bæta við og að búa til eru ólíkar prófanir

Að opna núverandi skrá til að bæta við krefst skrifheimildar á þeirri skrá auk leitarheimildar á hverri möppu í slóð hennar. Að búa til skrá krefst skrif- og leitarheimildar á möppunni sem geymir hana, því aðgerðin bætir nafni við hana. Að skipta út skrá með endurnefningu snertir báðar möppurnar og sticky-bit reglur þeirra líka.

OperationWhat must permit itTypical failure message
Append to an existing logFile write access, path traversalPermission denied on the file
Create a missing logDirectory write and search accessPermission denied on the path
Rename a replacement into placeBoth directories, plus sticky restrictionsPermission denied or operation not permitted

Skráarlýsing sem þegar er opin bætir við fjórða tilvikinu. Ferli getur haldið skrifhandfangi sem opnað var áður en það sleppti forréttindum og samt mistekist að opna sömu slóð aftur undir síðari auðkenni sínu. Árangursríkar viðbætur og misheppnuð sköpun geta bæði verið sannar, á sama augnabliki, fyrir sama ferli.

Sjálfgefin ACL erfast, þau veita ekki

Færsla sem byrjar á sjálfgefna forskeytinu lýsir því sem nýir hlutir erfa frá möppunni. Hún veitir möppunni sjálfri ekkert og lagar ekki ACL skrár sem þegar er til.

namei -l /var/log/openvpn/server.log
getfacl -p /var/log/openvpn
getfacl -p /var/log/openvpn/server.log

Lestu aðgangsfærslurnar aðskilið frá sjálfgefnum og lestu grímuna. Nefnd færsla sem telur upp full réttindi getur samt verið takmörkuð af grímunni, þess vegna skiptir skilaboðin um raunveruleg réttindi meira máli en stafirnir í fyrstu línunni.

Notaðu uppleystu slóðina frekar en slóðina í stillingunni. Táknhlutur, tengipunktur eða snúin mappa geta sett raunverulegu skrána á stað sem heimildin sem þú gafst nær aldrei til. Gakktu slóðina fyrst með nafnatólinu og berðu síðan hvert stig saman við viðkomandi reikning. Að giska á efstu möppuna er leiðin sem leiðrétting lendir einu stigi of hátt.

Greindu hver skrifar á þeirri stundu

Skoðaðu þjónustueininguna, drop-in hennar og reikningsstillingar daemonsins sjálfs áður en þú breytir einhverju. Ferlið sem bætir við og ferlið sem endurskapar geta verið ólík: snúningsaðstoð, stöðuritari og veflesari deila sjaldan auðkenni.

Prófun úr root skel endurskapar ekki takmarkaða þjónustu, og hún mun heppnast á meðan þjónustan heldur áfram að mistakast. Endurskapaðu misheppnuðu aðgerðina undir sömu einingu, með sama reikningi og sömu sandbox stillingum. Ef þú getur það ekki, ræstu eininguna með tímabundinni skel og skoðaðu auðkennið sem hún tilkynnir. Eitthvað annað mælir flugstöðina þína en ekki þjónustuna.

Ef sköpun er raunverulega nauðsynleg, veittu ritaranum aðgang að sérstakri atvikaskrámöppu og haltu lesaðgangi notenda aðskildum. Að gera sameiginlegan reikning eða allt forritatré skrifanlegt til að fullnægja einu atvikaskráningarákalli skiptir litlu vandamáli fyrir stórt.

Snúðu án þess að koma því aftur

Sá sem endurskapar skrána ákveður eiganda hennar og stillingu fyrir næstu lotu, svo samnýttu leiðréttinguna við snúningsstillingarnar. Staðgengill sem búinn er til undir öðrum reikningi, eða með nýju ACL, kemur biluninni aftur eftir árangursríka leiðréttingu.

Stilltu stillinguna og hópinn við sköpun, ekki síðar, og staðfestu næstu snúningu frekar en næstu viðbót. Viðbót endurtekur bara prófunina sem þegar stóðst. Ef snúningsverkfærið býður upp á stillingu fyrir sköpunarstillingu, notaðu hana í stað chmod eftir sköpun. Bilið milli sköpunar og chmod er einmitt þegar næsta skrif getur mistekist.

Þegar stytting mistekst samt, hættu að bæta heimildum við

Mistök við að stytta skrá sem þú getur skrifað í skýrast ekki af heimildum möppunnar, og að bæta fleiri þeirra mun ekki hjálpa. Horfðu á eigindin og takmörkunina í staðinn: append-only eigind leyfir skrif eingöngu í viðbótarmáta, og leseinung eða sandbox þjónustu getur hafnað aðgerð sem ACL leyfir.

Skoðaðu skráarkerfistakmarkanir einingarinnar og mount-valkosti slóðarinnar, endurskapaðu síðan nákvæmu aðgerðina sem mistókst. Að víkka heimild sem aldrei var ráðfærð við felur bara hvaða takmörkun var raunveruleg. Fjarlægðu eina takmörkun í einu í tímabundinni einingu og settu hana aftur áður en þú breytir einhverju varanlegu.

Tengdir greinar