GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué no puedo eliminar este archivo como root?

Desde el usuario raíz, verifique los atributos de los archivos

# lsattr 

si notas i (inmutable) o a (solo agregar), elimine esos atributos:

# man chattr
# chattr -i [filename]
# chattr -a [filename]

La razón más común de rm quejarse de que no tiene permiso para eliminar un archivo, es que los permisos en el directorio le prohíben eliminar el archivo. Para eliminar un archivo, necesita permiso de escritura en el directorio. Los permisos en el archivo son irrelevantes (rm sin -f solicita confirmación antes de eliminar un archivo de solo lectura, pero eso es solo una confirmación, no una limitación). En algunas variantes de Unix como OSX (pero no en Linux), la ACL de un archivo puede evitar su eliminación; ls -l mostraría @ al final del campo de permiso si había una entrada de ACL en el archivo.

El acceso como raíz omite los permisos, por lo que la raíz puede eliminar archivos incluso en un directorio de solo lectura.

La salida de ls -l muestra un . al final de la columna de permisos. Esto indica que el archivo tiene un contexto de seguridad SELinux. A diferencia de los permisos básicos y ACL, el contexto de seguridad de SELinux en un archivo puede controlar quién puede eliminarlo. Además, SELinux no siempre puede ser eludido por root (es posible tener un proceso ejecutándose como ID de usuario 0 pero con tan pocos derechos como el diseñador de políticas de SELinux eligió). Para ver lo que le permite hacer el contexto de SELinux, ejecute ls -lZ . exam_a .

Otra cosa que puede evitar que se elimine un archivo es si él o el directorio que lo contiene tiene el atributo de Linux inmutable o de solo agregar. Ejecute lsattr -d . exam_a para ver los atributos de Linux. Si el a o i atributo está activado, deberá eliminarlo (chattr -a -i . exam_a ) para borrar el archivo; solo root puede hacer eso. Root no puede omitir estos atributos para eliminar un archivo, los atributos deben desactivarse primero.

Otra cosa que evita que se elimine un archivo es si el sistema de archivos está montado como de solo lectura, pero en ese caso recibiría un mensaje de error diferente.


Linux
  1. Cómo eliminar el archivo de correo raíz (buzón) en Linux

  2. ¿Por qué Rm puede eliminar archivos de solo lectura?

  3. ¿No se puede eliminar el archivo, incluso cuando se ejecuta como raíz?

  4. ¿Dónde está el archivo de encabezado <conio.h> en Linux? ¿Por qué no puedo encontrar <conio.h>?

  5. Cómo eliminar un archivo con este nombre en Linux:-]???????q

¿Cómo puedo eliminar una nueva línea si es el último carácter de un archivo?

¿Por qué los archivos no pueden ser manipulados por inode?

El usuario no está en el archivo sudoers. Este incidente será reportado

¿Por qué Vim está agregando una nueva línea? ¿Es esto una convención?

¿Por qué no puedo matar este proceso en Linux?

¿Cómo puede un administrador de archivos montar una unidad sin root?