CH-J Server Managerserverihaldus üle SSH
Menüü
Kõik juhendid ja artiklid →

Kaugfail muutus redigeerimise ajal: kuidas vältida selle ülekirjutamist

Kuidas tuvastada, et keegi muutis serverifaili sinu redigeerimise ajal, võrrelda versioone ja salvestada kumbagi muudatust kaotamata.

Kuidas probleem tekib

Avad faili ja samal ajal, kui muudad oma koopiat, kirjutab miski muu originaali: teine administraator, konfiguratsioonihalduse käivitus, paketi uuendamine või rakendus ise. Kui seejärel salvestad, kaob teise tehtud muudatus veateateta. Eriti haavatav on kohalik redigeerimine koos SFTP kaudu üleslaadimisega, sest lugemise ja kirjutamise vahele jääb pikk aeg ning tavaline üleslaadimine ei võrdle midagi.

Salvesta olek enne alustamist

Faili allalaadimisel märgi üles kontrollsumma ja viimase muudatuse aeg. Kontrolli neid uuesti vahetult enne üleslaadimist. Erinev kontrollsumma tähendab, et fail on muutunud ning sa ei tohiks seda muudatusi üle vaatamata üle kirjutada.

sha256sum /etc/example.conf
stat -c '%y %U %G %a' /etc/example.conf

Võrdle ja ühenda muudatused

Säilita muudetud koopia uue nime all, laadi alla praegune versioon ning võrdle seda nii algse kui ka enda versiooniga. Seejärel lisa oma muudatus praegusesse versiooni, selle asemel et see üle kirjutada. Käsk diff3 saab näidata kõiki kolme versiooni koos.

diff -u example.conf.orig example.conf.current
diff -u example.conf.orig example.conf.mine
diff3 example.conf.mine example.conf.orig example.conf.current

Selgita välja, mis faili muudab

Kui fail pidevalt muutub, selgita enne uut redigeerimist välja põhjus. Kontrolli, kellel fail avatud on, ning vaata süsteemilogi ja pakettide ajalugu. Kui faili haldab konfiguratsioonihaldus, muuda malli seal, vastasel juhul asendab järgmine käivitus sinu muudatuse.

sudo lsof /etc/example.conf
sudo journalctl --since "1 hour ago" --no-pager | grep example.conf
grep example.conf /var/log/dpkg.log

Hoiatus ei ole lukustus

Redaktorid nagu vim ja nano hoiatavad, kui fail on pärast avamist muutunud, kuid ei takista teisel protsessil sellesse kirjutamast. Sama kehtib kontrollsummade võrdlemise kohta: kontroll vahetult enne salvestamist muudab ajavahemiku väga lühikeseks, kuid ei kõrvalda seda. Serverites, kus töötab mitu inimest, kaitseb versioonihaldusega konfiguratsiooniallikas sind paremini kui ükski redaktor.

Salvestuskaitse rakenduses CH-J Server Manager

File Manager redaktor kontrollib faili salvestamisel uuesti. Kui sisu, õigused või lingi sihtkoht on muutunud, salvestamine peatub ja originaal jääb puutumata. Seejärel saad laadida serverist praeguse versiooni, mis tühistab su salvestamata muudatused, seega kopeeri tekst esmalt mujale. Redaktor ei ühenda versioone sinu eest. Edastuste puhul küsib rakendus enne muutunud või juba olemasoleva sihtfaili asendamist ning palub uuesti alustada, kui lähtefail edastuse ajal muutus.

Üksikasjalikud dokumendid

man: stat →

man: diff →

Biomeetriline lahtipääs ja turvalisus →