No se puede eliminar el archivo, incluso cuando se ejecuta como root

48

Estoy en el proceso de migrar una máquina de RHEL 4 a 5. En lugar de hacer una actualización, hemos creado una nueva VM (ambas máquinas están en una nube) y estoy en el proceso de copiar datos entre los dos.

Me encontré con el siguiente archivo, que necesito eliminar de la nueva máquina pero no puedo, incluso cuando se ejecuta como root:

-rw-------  1 2003 2003  219 jan 11 14:22 .bash_history

Este archivo está dentro de / home / USER /, donde USER es la cuenta del tipo que construyó la máquina. No tiene una cuenta en la máquina anterior, por lo que estoy tratando de eliminar su carpeta de inicio para que la nueva máquina coincida con la anterior, pero aparece el siguiente error:

rm: ne peut enlever `.bash_history': Opération non permise

(traducido del francés: no se puede eliminar XXX, operación no permitida)

He intentado usar el siguiente comando pero esto no ha hecho ninguna diferencia:

chattr -i .bash_history

¿Es la única opción para crear un usuario con el ID 2003, o hay otra forma de evitarlo?


Editar

He intentado usar rm -fy me sale el mismo error. Me sale el mismo tipo de error usando chmod 777primero.

He podido acceder a chownla carpeta que contiene el archivo que estoy tratando de eliminar, por lo que es:

drwx------ 2 root root 1024 jan 24 15:58 USER

Edit2

Ejecutar el lsattrcomando según lo sugerido por Angus dio el siguiente resultado:

-----a------- USER/.bash_history
------------- USER/..
------------- USER/.

El archivo está marcado como solo anexar: al cambiar esta marca usando chattr -a .bash_historypude eliminar el archivo.

Rico
fuente

Respuestas:

55

Verifique los permisos del directorio . Para eliminar un archivo dentro de él, debe poder ser escrito por usted

chmod ugo+w .

y no inmutable o solo anexado:

chattr -i -a .

Consulte con ls -lay lsattr -a.

angus
fuente
gracias .. Tuve que ejecutar esto en archivos * nombrados que no se
limpiaron
Desafortunadamente, /vendor/laracasts/generators/.git/objects/pack/cuando corro chattr -i -a ., obtengo chattr: Inappropriate ioctl for device while reading flags on ., y no puedo, rmel molesto .idxarchivo que Composer dejó atrás (porque "Operación no está permitida").
Ryan
Ahhh, una solución para mí fue salir de mi VirtualBox Laravel Homestead Vagrant de nuevo en Windows 10 (todavía usando Git Bash) y rmlos archivos desde allí. Luego composer updatefue capaz de completar.
Ryan
chattr -i -atrabajó.
xji
Incluso después de usar Linux durante casi 10 años, sigo aprendiendo cosas nuevas. ¡Nunca antes había escuchado sobre el atributo inmutable!
marlar hace
9

Tuve un problema similar pero había intentado ambos permisos y chattr anteriormente sin resultado. Raíz en la Terminal. CD al directorio.

Sin embargo, lo que funcionó para mí fue verificar los permisos del directorio donde se encontraba el archivo problemático; si está bien, proceda a:

chmod ugo+w filename

esto falló, entonces:

chattr -i -a filename 

que fue aceptado - entonces

chmod ugo+w 

que fue aceptado

rm filename

y se fue.

Fedora 25 en la estación de trabajo hp.

Keith Mann
fuente
'chmod ugo + w filename' me
funcionó totalmente
1

'sudo' puede ejecutar el comando 'rm' usando el mismo user.group

NOTA : no estoy seguro si esto también funcionará para identificadores como usted.

Ejemplo:

ls /path/to/dir_being_deleted
  drwxrwxrwx 2 nfsnobody nfsnobody   4096 Mar  8 06:55 .
  drwxrwxrwx 7 nfsnobody nfsnobody   4096 Mar  8 06:57 ..
  -rwxrwxrwx 1 nfsnobody nfsnobody      0 Mar  8 06:55 filename.txt

sudo -u nfsnobody -g nfsnobody rm -rf /path/to/dir_being_deleted
awltux
fuente