Je suis en train de migrer une machine de RHEL 4 vers 5. Plutôt que de faire une mise à niveau, nous avons créé une nouvelle machine virtuelle (les deux machines sont dans un cloud) et je suis en train de copier des données entre les deux.
J'ai rencontré le fichier suivant, que je dois supprimer de la nouvelle machine mais que je ne peux pas, même en tant que root :
-rw------- 1 2003 2003 219 jan 11 14:22 .bash_history
Ce fichier se trouve dans /home/USER/, où USER est le compte du gars qui a construit la machine. Il n'a pas de compte sur l'ancienne machine, j'essaie donc de supprimer son dossier personnel afin que la nouvelle machine corresponde à l'ancienne, mais j'obtiens l'erreur suivante :
rm: ne peut enlever `.bash_history': Opération non permise
(traduit de l'anglais :impossible de supprimer XXX, opération non autorisée)
J'ai essayé d'utiliser la commande suivante mais cela n'a fait aucune différence :
chattr -i .bash_history
Le seul choix est-il de créer un utilisateur avec l'ID 2003, ou existe-t-il un autre moyen ?
Modifier
J'ai essayé d'utiliser rm -f
, et j'obtiens la même erreur. J'obtiens le même type d'erreur en utilisant chmod 777
d'abord.
J'ai pu chown
le dossier qui contient le fichier que j'essaie de supprimer, c'est donc :
drwx------ 2 root root 1024 jan 24 15:58 USER
Modifier2
Exécution de lsattr
La commande suggérée par Angus a donné le résultat suivant :
-----a------- USER/.bash_history
------------- USER/..
------------- USER/.
Le fichier est marqué comme append-only - lors de la modification de cet indicateur à l'aide de chattr -a .bash_history
J'ai pu supprimer le fichier.
Réponse acceptée :
Vérifiez les permissions du répertoire . Pour supprimer un fichier à l'intérieur, il doit être accessible en écriture par vous
chmod ugo+w .
et non immuable ou en ajout uniquement :
chattr -i -a .
Vérifiez avec ls -la
et lsattr -a
.