¿Cómo bloquear un archivo para que no se elimine pero aún así poder escribirlo?

¿Cómo bloquear un archivo para que no se elimine pero aún así poder escribirlo?

Quiero crear un archivo bloqueado contra eliminación pero que aún se pueda escribir. ¿Cómo hago esto?

El archivo en cuestión es un volumen Truecrypt como archivo en un recurso compartido de red NAS SMB, por lo que no quiero eliminarlo accidentalmente.

Respuesta1

Para ventanas:

  1. Denegar el permiso "Eliminar" en el archivo.
  2. Elimine o deniegue el permiso "Eliminar elementos secundarios" en el directorio principal.

Para Unix (incluido OS X):

  1. Elimine el permiso de "Escritura" en el directorio principal.

Tenga en cuenta que esto solo evitará que el archivo se elimine (elimine), pero no hará nada contra el truncamiento accidental o la sobrescritura con basura. Si se puede escribir en un archivo, puedes escribir cualquier cosa en él, punto.

Además, los permisos de archivos son casi imposibles de traducir entre sistemas operativos. Si el NAS ejecuta Linux e intenta establecer permisos desde Windows, el resultado final puede ser diferente al esperado.

Respuesta2

En Linux, puedes crear un enlace físico a él. Luego puede escribir en él y "eliminarlo", pero solo eliminará la referencia en su directorio. El otro enlace físico seguirá apuntando al contenido del archivo, por lo que no se habrá eliminado de todos modos.

En el mundo Unix, no se "eliminan" archivos. Simplemente disminuye la cantidad de enlaces físicos al mismo. Cuando nada más lo indica, el espacio se considera libre y se puede utilizar...

Respuesta3

Copias de seguridad. Realmente no se puede proteger un archivo grabable dedañoincluso si puedes desde la eliminación. Haga una copia de seguridad diariamente.

Respuesta4

En un sistema de archivos de vaca como btrfs, puede lograr esto usando subvolúmenes + instantáneas o cp con --reflink=always, esto efectivamente dará como resultado tantos archivos como desee, lo que consumiría la misma cantidad de espacio que uno + algo de sobrecarga (pero sin una cantidad increíble de copias o instantáneas, especialmente combinadas con archivos de tamaño pequeño, esto no debería notarse) hasta que se modifican, en cuyo caso solo las partes que se han modificado se almacenan por separado y el resto aún se comparte. Luego configure los permisos en cada uno por separado (para lograr lo que desea, simplemente haga una instantánea o cópiela con permisos de solo lectura (y, opcionalmente, móntela ro o no en todo si es una instantánea y si es un archivo use chattr +i (los usuarios pueden No escriba ni modifique el archivo incluso si tiene permisos de escritura (en una copia si está paranoico).

información relacionada