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?
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
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.
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
.
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.
'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