web-dev-qa-db-fra.com

Impossible de supprimer le fichier, même lors de l'exécution en tant que root

Je suis en train de migrer une machine de RHEL 4 vers 5. Plutôt que de faire une mise à niveau, nous avons créé un nouveau VM (les deux machines sont dans un cloud) et je suis en train de faire de copier les données entre les deux.

Je suis tombé sur le fichier suivant, que je dois supprimer de la nouvelle machine, mais je ne le peux pas, même lors de l'exécution 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 pour que la nouvelle machine corresponde à l'ancienne, mais j'obtiens l'erreur suivante:

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

(traduit du français: 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

Est-ce le seul choix pour créer un utilisateur avec l'ID 2003, ou existe-t-il un autre moyen de le contourner?


Éditer

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 première.

J'ai pu chown le dossier qui contient le fichier que j'essaye de supprimer, c'est donc:

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

Modifier2

L'exécution de la commande lsattr comme suggéré par Angus a donné la sortie suivante:

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

Le fichier est marqué comme ajout uniquement - lors de la modification de ce drapeau à l'aide de chattr -a .bash_history J'ai pu supprimer le fichier.

54
Rich

Vérifiez les autorisations du annuaire. Pour supprimer un fichier qu'il contient, il doit être accessible en écriture par vous

chmod ugo+w .

et non immuable ou en annexe uniquement:

chattr -i -a .

Vérifier avec ls -la et lsattr -a.

59
angus

J'ai eu un problème similaire, mais j'avais essayé les autorisations et chattr auparavant en vain. Racine dans le terminal. CD dans le répertoire.

Cependant, ce qui a fonctionné pour moi, c'était de vérifier les autorisations du répertoire où se trouvait le fichier gênant - si cela vous convient, passez à:

chmod ugo+w filename

cela a échoué - alors:

chattr -i -a filename 

qui a été accepté - alors

chmod ugo+w 

qui a été accepté

rm filename

et c'était parti.

Fedora 25 sur la station de travail hp.

10
Keith Mann

'Sudo' peut exécuter la commande 'rm' en utilisant le même user.group

NOTE : je ne sais pas si cela fonctionnera également pour les identifiants comme vous.

Exemple:

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
1
awltux