GNU/Linux >> Tutoriales Linux >  >> Linux

¿Permisos de archivo y ahorro?

Supongamos que abre un archivo en el que tiene permiso de escritura.
Mientras tanto, cambia los permisos y elimina el permiso de escritura mientras aún tiene el archivo abierto en algún editor.

¿Qué pasará si lo editas y lo guardas?

Respuesta aceptada:

Los permisos de un archivo se comprueban cuando se abre el archivo. Cambiar los permisos no afecta lo que los procesos que ya tienen el archivo abierto pueden hacer con él. Esto se usa a veces con procesos que comienzan con privilegios adicionales, abren un archivo y luego eliminan esos privilegios adicionales:aún pueden acceder al archivo pero es posible que no puedan volver a abrirlo.

Sin embargo, los editores normalmente no mantienen un archivo abierto. Cuando un editor abre un documento, lo que sucede bajo el capó es que el editor carga el contenido del archivo en la memoria y cierra el archivo. Cuando guarda el documento, el editor abre el archivo y escribe el nuevo contenido.

Los editores pueden seguir una de dos estrategias al guardar un archivo. Pueden crear un nuevo archivo y luego moverlo a su lugar. Alternativamente, pueden abrir el archivo existente y sobrescribir el contenido anterior. Sobrescribir tiene la ventaja de que el permiso y la propiedad del archivo no cambian, y que funciona incluso en un directorio de solo lectura. La principal desventaja de sobrescribir es que si el guardado falla a la mitad (bloqueo del editor, bloqueo del sistema, disco lleno, etc.), se queda con un documento truncado. Diferentes editores eligen diferentes estrategias; el bueno escribe en nuevo y luego mueve si es posible, y sobrescribe solo en un directorio de solo lectura (después de hacer una copia de seguridad en otro lugar).

Si el editor sigue la estrategia de nuevo y luego mover, los permisos en el archivo no importan:el editor creará un nuevo archivo y solo necesita permiso de escritura en el directorio para eso. Hay dos excepciones:si el directorio tiene el sticky bit, cambiar la propiedad del archivo (pero no el permiso) puede hacer que sea imposible que el proceso mueva el nuevo archivo a su lugar. Otra excepción son los sistemas que admiten el permiso de eliminación a través de ACL (como OSX):revocar el permiso de eliminación del archivo puede hacer que la transferencia sea imposible.

Si el editor sigue la estrategia de sobrescritura, revocar el permiso de escritura hará imposible guardar. (Sin embargo, algunos editores que sobrescriben de forma predeterminada pueden recurrir a nuevo y luego mover).

Relacionado:¿Cómo cambiar un nombre de archivo que contiene caracteres?

En Vim, puede forzar la estrategia de sobrescritura desactivando la backupcopy opción; Vea también por qué el valor del inodo cambia cuando editamos en el editor "vi". En Emacs, puede forzar la estrategia de sobrescritura configurando el backup-by-copying variable a t .


Linux
  1. Conceptos básicos de los permisos de archivos de Linux

  2. Permisos de Linux:una introducción a chmod

  3. Linux:¿comprensión de los permisos y tipos de archivos de Unix?

  4. ¿Precedencia del propietario del usuario y del grupo en los permisos de archivo?

  5. Cómo cambiar los permisos de archivos y directorios con el Administrador de archivos

Comando Chmod en Linux (Permisos de archivo)

Cómo guardar un archivo en Vi / Vim y salir del editor

Editor VIM

Permisos y propiedad de archivos de Linux explicados con ejemplos

Administre directorios y permisos de archivos con chmod Recursive

Comprender los permisos básicos de archivos y la propiedad en Linux