¿Cuál es la idea detrás de que rm no elimine el archivo no grabable de forma predeterminada?


13

¿Cuál es la idea detrás de que rm no elimine el archivo no grabable de forma predeterminada? Cada vez que desee eliminar un archivo que no sea de escritura para el usuario actual pero tenga un permiso de escritura en el directorio, obtenga esta advertencia y debe presionar `y 'para confirmar la eliminación:

rm: remove write-protected regular file 

Me pregunto por qué los archivos que no se pueden escribir se tratan de manera tan especial. Una cosa que me viene a la mente es que dichos archivos suelen ser archivos de configuración del usuario que contienen datos secretos del usuario, como la contraseña cifrada, por lo que rm advierte antes de eliminarlos. Ahora, ¿cuál es la verdadera razón?

Respuestas:


16

Es porque el comportamiento de UNIX es un poco contra-intuitivo en este caso. Muchas personas se sorprenden cuando marcan un archivo de solo lectura y alguien puede eliminarlo. Solo necesita permisos de escritura en el directorio que lo contiene para eliminar un archivo. rmte lo pide como cortesía, en caso de que esperaras que fuera de solo lectura lo protegería.

Usar -f(fuerza) lo hará hacerlo sin molestarte. Pero úsalo con cuidado.


tenga cuidado al escribir "rm -rf *", piense.
ChuckCottrill

44
Un amigo mío se refiere a eso como "Leer correo realmente rápido". :)
kurtm

0

Creo que estás en lo correcto al preguntar porque está configurado para que no se escriba. Si está eliminando el archivo no grabable, de hecho, está escribiendo en ese archivo. Si no desea que se le solicite, siempre puede crear un alias que diga rm en realidad rm -f.


No creo haber recibido tu respuesta correctamente. Me pregunto por qué rm emite tal advertencia en primer lugar, por qué los archivos de solo lectura se tratan de manera diferente a los archivos de escritura. Sé que cuando se muestra esta advertencia, me pregunto por qué.
user1042840

Porque si configuras algo para que solo se lea, no se supone que se cambie. Eso incluye ser eliminado. Si eres root y le dices que elimine el archivo de solo lectura de todos modos, quiere confirmar que no estás cometiendo un error. Te hace repensar tu elección.
Jeight

1
@Jeight Eso no es realmente correcto. Usted está no escribir en el archivo cuando se eliminan. Estás escribiendo en el directorio contenedor.
kurtm

@kurtm Tienes razón. Eso fue un error tipográfico, pero el razonamiento subyacente es el mismo.
Jeight
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.