Nie można usunąć pliku, nawet jeśli działa jako root


48

Jestem w trakcie migracji komputera z RHEL 4 do 5. Zamiast aktualizacji, stworzyliśmy nową maszynę wirtualną (obie maszyny są w chmurze) i jestem w trakcie kopiowania danych między nimi.

Natknąłem się na następujący plik, który muszę usunąć z nowego komputera, ale nie mogę tego zrobić, nawet jeśli działam jako root:

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

Ten plik znajduje się w katalogu / home / USER /, gdzie USER jest kontem faceta, który zbudował maszynę. Nie ma konta na starym komputerze, więc próbuję usunąć jego folder domowy, aby nowy komputer był zgodny ze starym, ale pojawia się następujący błąd:

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

(przetłumaczone z francuskiego: nie można usunąć XXX, operacja niedozwolona)

Próbowałem użyć następującego polecenia, ale to nie miało znaczenia:

chattr -i .bash_history

Czy to jedyny wybór, aby utworzyć użytkownika o identyfikatorze 2003, czy jest na to sposób?


Edytować

Próbowałem użyć rm -fi otrzymuję ten sam błąd. Otrzymuję ten sam rodzaj błędu przy chmod 777pierwszym użyciu .

Udało mi się do chownfolderu zawierającego plik, który próbuję usunąć, więc jest to:

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

Edytuj2

Uruchomienie lsattrpolecenia zgodnie z sugestią Angusa dało następujący wynik:

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

Plik jest oflagowany tylko jako append - po zmianie tej flagi za pomocą chattr -a .bash_historybyłem w stanie usunąć plik.

Odpowiedzi:


54

Sprawdź uprawnienia do katalogu . Aby usunąć plik w nim, powinien być zapisywalny przez Ciebie

chmod ugo+w .

i niezmienne lub tylko do dołączania:

chattr -i -a .

Sprawdź za pomocą ls -lai lsattr -a.


dzięki .. Musiałem uruchomić to na nazwanych * plikach, które nie wyczyściły się po wymazaniu yum binda w
Centos

Niestety, /vendor/laracasts/generators/.git/objects/pack/gdy uruchamiam chattr -i -a ., dostaję chattr: Inappropriate ioctl for device while reading flags on .i nie mogę sobie pozwolić rmna nieznośny .idxplik pozostawiony przez Kompozytora (ponieważ „Operacja niedozwolona”).
Ryan

Ahhh, jednym z obejść było dla mnie wyjście z mojego Laravel Homestead Vagrant VirtualBox z powrotem do systemu Windows 10 (nadal używając Git Bash) i rmplików z tego miejsca. Następnie composer updatebył w stanie ukończyć.
Ryan

chattr -i -apracował
Xji

9

Miałem podobny problem, ale wcześniej próbowałem obu uprawnień i chattr bezskutecznie. Zrootuj w terminalu. CD do katalogu.

Jednak działało dla mnie sprawdzenie uprawnień do katalogu, w którym znajduje się kłopotliwy plik - jeśli ok, przejdź do:

chmod ugo+w filename

to się nie udało - wtedy:

chattr -i -a filename 

co zostało przyjęte - wtedy

chmod ugo+w 

który został zaakceptowany

rm filename

i zniknęło.

Fedora 25 na stacji roboczej hp.


„chmod ugo + w nazwa pliku” całkowicie
załatwiło sprawę

1

„sudo” może uruchomić polecenie „rm” przy użyciu tej samej grupy użytkowników

UWAGA : nie jestem pewien, czy to zadziała również dla identyfikatorów takich jak Ty.

Przykład:

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.