Ho un file molto importante che utilizza un'applicazione nel mio posto di lavoro, devo assicurarmi che non sia cancellato in alcun modo, come posso farlo?
Ho un file molto importante che utilizza un'applicazione nel mio posto di lavoro, devo assicurarmi che non sia cancellato in alcun modo, come posso farlo?
Risposte:
Sì, è possibile modificare gli attributi del file in sola lettura.
Il comando è:
chattr +i filename
E per disabilitarlo:
chattr -i filename
Da man chattr
:
Un file con l'
i
attributo non può essere modificato: non può essere eliminato o rinominato, non è possibile creare alcun collegamento a questo file e nessun dato può essere scritto nel file. Solo il superutente o un processo che possiede laCAP_LINUX_IMMUTABLE
capacità può impostare o cancellare questo attributo.
chflags schg
Masterizzalo su un CD. Inserire il CD in un'unità CD-ROM e accedervi da lì.
Esempio:
# dd if=/dev/zero of=readonly.img bs=1024 count=1024
# mkfs.ext2 readonly.img
# mkdir readonlyfolder
# mount readonly.img readonlyfolder/
# echo "can't delete this" > readonlyfolder/permanent.txt
# umount readonlyfolder
# mount -o ro readonly.img readonlyfolder
# cat readonlyfolder/permanent.txt
can't delete this
# rm readonlyfolder/permanent.txt
rm: cannot remove `readonlyfolder/permanent.txt': Read-only file system
mount -o remount,rw readonlyfolder/ && rm readonlyfolder/permanent.txt
squashfs
o cramfs
che sono compressi e di sola lettura. Ha bisogno di uno strumento speciale per costruire il filesystem.
Linux ha la cosiddetta opzione bind-mount che è piuttosto potente e utile da sapere :
% cd $TMP && mkdir usebindmountluke && cd usebindmountluke
% echo usebindmountluke > preciousfile
% sudo mount -B preciousfile preciousfile
% sudo mount -oremount,ro preciousfile
% echo sowhat > preciousfile
zsh: read-only file system: preciousfile
% rm preciousfile
rm: cannot remove ‘preciousfile’: Read-only file system
- ciò che viene fatto qui è il file bind-mount su se stesso (sì, puoi farlo in Linux), quindi viene rimontato in modalità R / O. Naturalmente questo può essere fatto anche nella directory.
È inoltre necessario creare più collegamenti fisici al file. Questi dovrebbero essere in varie posizioni a cui gli utenti normali non possono accedere.
In questo modo, anche se riescono a sovrascrivere la tua protezione chattr, i dati rimarranno e potrai facilmente ripristinarli dove la tua applicazione li sta cercando.
Altri hanno risposto alla tua domanda quando l'hai fatta. Come @Sven ha menzionato in un commento, la soluzione generale alla domanda "Come posso assicurarmi di non perdere mai un file?" è creare un backup del file. Crea una copia del file e salvalo in più punti. Inoltre, se il file è estremamente importante e la vostra azienda ha una politica per il backup di dati importanti con un servizio di backup, è possibile che il file sia incluso nel servizio.
Su Linux l' immutabile bandiera è supportata solo su alcuni tipi di file system (la maggior parte di quelli autoctoni come ext4
, xfs
, btrfs
...)
Su filesystem in cui non è supportato, un'altra opzione è quella di legare il file su se stesso in modalità di sola lettura. Questo deve essere fatto in due passaggi:
mount --bind file file
mount -o remount,bind,ro file
Questo deve essere fatto ad ogni avvio, ad esempio tramite /etc/fstab
.
umount
abbia di nuovo il permesso di scrivere
In un commento alla risposta di Kevin , Jerry menziona:
Bene, ovviamente il backup del file viene eseguito regolarmente, volevo solo un altro livello di protezione contro gli utenti che a volte lavorano sulla scatola con i permessi dell'utente root. -
Suppongo che non puoi cambiare questa pratica, dato che è una pessima idea.
Tutti i suggerimenti sull'utilizzo di un dispositivo di sola lettura hanno lo stesso problema: è una PITA per te apportare modifiche legittime quando è necessario. Nel caso di un'unità bloccabile, come una scheda SD, si verifica il problema di essere improvvisamente vulnerabile quando lo si sblocca per apportare le modifiche.
Quello che consiglierei invece è configurare un'altra macchina come server NFS e condividere la directory con i file importanti con le macchine su cui gli utenti hanno root. Condividi il mount in sola lettura, in modo che le macchine con utenti di cui non ti fidi non possano apportare modifiche. Quando è necessario apportare legittimamente modifiche, è possibile connettersi al server NFS e apportare le modifiche lì.
Lo usiamo per i nostri server Web, in modo che un exploit di successo contro il server Web non sia in grado di inserire o modificare i file che il server servirebbe a ripristinare o modificare la configurazione.
Si noti che questo può essere disabilitato allo stesso modo in cui tutti quelli relativi al punto di montaggio possono essere:
Perché non creare un'immagine ISO 9660, che è di sola lettura in base alla progettazione?
Montare l'immagine ISO e sembrerà un CD-ROM, ma con le prestazioni di un disco rigido, i file sull'immagine montata saranno altrettanto sicuri dalla cancellazione dei file su un CD-ROM fisico.
L'idea di masterizzare il file sensibile su un CD ed eseguirlo da un CD-ROM è interessante, supponendo che l'impostazione del bit immutabile sul file non sia considerata sufficiente.
Esistono potenziali problemi negativi nell'esecuzione da un CD fisico, comprese le prestazioni (le unità CD-ROM sono molto, molto più lente rispetto ai dischi rigidi o SSD). È probabile che il CD-ROM venga rimosso da un individuo ben intenzionato e sostituito con un disco diverso al quale devono accedere. C'è la probabilità che una parte malvagia prenda semplicemente il disco e lo lanci in un forno a microonde (o nel cestino), quindi "eliminando" il file. C'è l'inconveniente di dover avere un'unità CD-ROM hardware dedicata solo per quel file e altri fattori.
Ma l'OP ha chiarito che l'intento principale è proteggere dall'eliminazione accidentale, non da azioni dannose, e che i file in questione sono sottoposti a backup e ripristinabili in caso di incidente, ma è altamente auspicabile che il file non venga mai essere cancellato accidentalmente.
Sembra che l'esecuzione del file da un'immagine ISO montata soddisfi i requisiti.
shred
vero criminale sarebbe proprio a quel punto. Ma a meno che non si stia negando l'accesso fisico alla macchina, sembra ancora più semplice estrarre un CD fisico dall'unità e gettarlo nel cassonetto piuttosto che smontare e sovrascrivere il file ISO, anche se uno dei due è facile. E l'OP ha dichiarato che il backup del file importante viene eseguito su base regolare, quindi questa è solo una misura in più contro i danni accidentali, non contro i malizi.
chattr +i
potrebbe aiutare ma renderà anche il file di sola lettura (e può essere sostituito conchattr -i
), inoltre puoi provare a proteggerlo con SELInux ecc.