In logboek dat mar groeit, hâldt op mei groeien op it stuit dat eat it opnij oanmakket, en de flater seit tagong wegere. De ferliedlike konklúzje is dat it bestân sels mear rjochten nedich hat, wylst itselde account der miskien al yn skriuwe kin. Taheakje oan in besteande namme en in nije oanmeitsje binne ferskillende kontrôles, en allinnich de twadde freget de map.

Taheakje en oanmeitsje binne ferskillende kontrôles

In besteand bestân iepenje om ta te heakjen freget skriuwtagong op dat bestân en syktagong yn elke map fan syn paad. In bestân oanmeitsje freget skriuw- en syktagong op de map dy't it befettet, om't de operaasje dêr in namme oan taheakket. In bestân ferfange troch omneame rekket beide mappen en har sticky-bit-regels.

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

In al iepene descriptor foeget in fjirde gefal ta. In proses kin in skriuwbere handle hâlde dy't iepene wie foar't it syn foarrjochten ôfstie en dochs mislearje om itselde paad ûnder syn lettere identiteit opnij te iepenjen. De slagge taheaksels en it mislearre oanmeitsjen kinne tagelyk wier wêze foar itselde proses.

Default ACL's ervje, se jouwe neat

In yngong dy't mei it default-foarheaksel begjint, beskriuwt wat nije objekten fan de map ervje. It jout de map sels neat en it reparearret de ACL fan in bestân dat al bestiet net.

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

Lês de tagongs-yngongen apart fan de default-yngongen, en lês it masker. In neamde yngong dy't folsleine rjochten listet, kin dochs beheind wurde troch it masker, dêrom is it effektiviteitskommentaar wichtiger as de letters op de earste rigel.

Brûk it oploste paad ynstee fan it paad yn 'e konfiguraasje. In symlink, in mountpunt of in rotearre map kin it echte bestân earne pleatse dêr't de tagong dy't jo jouden nea berikt. Rin it paad earst mei namei troch en fergelykje dêrnei elk nivo mei it account yn kwestje. Rieden oer de haadmap is hoe't in reparaatse ien nivo te heech lânet.

Stel fêst wa't op dat stuit skriuwt

Kontrolearje de tsjinst-ienheid, har drop-ins en de account-ynstellingen fan 'e daemon foar't jo wat feroarje. It proses dat taheakkelt en it proses dat opnij oanmakket, kinne ferskillend wêze: in rotaasje-helper, in status-skriuwer en in weblêzer diele selden in identiteit.

In testrun fan in root-shell reprodusearret in beheinde tsjinst net, en it sil slagje wylst de tsjinst mislearret. Reprodusearje de mislearjende operaasje ûnder deselde ienheid, mei itselde account en deselde sandbox-ynstellingen. Kinne jo dat net, start de ienheid dan mei in tydlike shell en kontrolearje de identiteit dy't it rapportearret. Al it oare mjit jo terminal ynstee fan 'e tsjinst.

As oanmeitsjen echt nedich is, jou de skriuwer dan tagong ta de tawijde logmap en hâld de lêstagong foar konsuminten apart. In dield account of in hiele applikaasjebean skriuwber meitsje om ien logoproep te foldwaan ruilet in lyts probleem foar in grut.

Rotaasje sûnder de flater werom te bringen

Wa't it bestân opnij oanmakket, beslút oer syn eigner en modus foar de folgjende syklus, sadat jo de reparaatse ôfstimme mei de rotaasjekonfiguraasje. In ferfanging dy't ûnder in oar account of mei in nije ACL oanmakke wurdt, bringt de flater nei in slagge korreksje werom.

Set de modus en de groep by it oanmeitsjen, net efterôf, en ferifiearje de folgjende rotaasje ynstee fan it folgjende taheaksel. In taheaksel werhellet allinnich de test dy't al slagge is. As it rotaasje-ark in ynstelling foar oanmeitsmodus biedt, brûk dy dan ynstee fan in chmod efterôf. De kleau tusken oanmeitsjen en chmod is krekt it stuit wêrop't de folgjende skriuwwerring mislearje kin.

As it ôfkoartsjen dochs mislearret, stop dan mei rjochten taheakje

In mislearring by it ôfkoartsjen fan in bestân dêr't jo yn skriuwe kinne, wurdt net ferklearre troch maprjochten, en mear dêrfan taheakje sil net helpe. Sjoch ynstee nei de attributen en de beheining: in append-only-attribút lit skriuwerijen allinnich yn taheakmodus ta, en in lês-inkeld mount of in tsjinst-sandbox kin in operaasje wegerje dy't de ACL tastiet.

Kontrolearje de bestânssysteembeheiningen fan 'e ienheid en de mount-opsjes foar it paad, en reprodusearje dan de krekte operaasje dy't mislearre. In rjocht ferbrede dat nea rieplachte waard, ferberget allinnich hokker beheining echt wie. Ferwiderje ien beheining tagelyk yn in weismietbere ienheid, en set dy werom foar't jo wat permanints feroarje.

Relatearre artikelen