Не вдається видалити файл, навіть якщо він працює як root


48

Я переношу машину з RHEL 4 на 5. Замість того, щоб насправді зробити оновлення, ми створили новий VM (обидві машини знаходяться у хмарі), і я перебуваю в процесі копіювання даних між двома.

Я натрапив на такий файл, який мені потрібно видалити з нової машини, але не в змозі, навіть коли він працює під керуванням root:

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

Цей файл знаходиться всередині / home / USER /, де USER - обліковий запис хлопця, який створив машину. У нього немає облікового запису на старій машині, тому я намагаюся видалити його домашню папку, щоб нова машина відповідала старій, але я отримую таку помилку:

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

(перекладено з французької: неможливо видалити XXX, операція не дозволена)

Я спробував використати таку команду, але це не мало значення:

chattr -i .bash_history

Є єдиним вибором створити користувача з ідентифікатором 2003, чи існує інший шлях до нього?


Редагувати

Я намагався використовувати rm -f, і я отримую ту ж помилку. Я отримую таку ж помилку, використовуючи chmod 777спочатку.

Мені вдалося до chownпапки, яка містить файл, який я намагаюся видалити, так це:

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

Правка2

Виконання lsattrкоманди, як запропонував Angus, дало такий результат:

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

Файл позначено як додаток - після зміни цього прапора chattr -a .bash_historyя міг видалити файл.

Відповіді:


55

Перевірте дозволи довідника . Щоб видалити файл всередині нього, ви повинні писати його

chmod ugo+w .

і не змінюється або додається лише:

chattr -i -a .

Зверніться до ls -laта lsattr -a.


спасибі .. Мені довелося запустити це на файлах з ім'ям *, які не видалялися після стирання yum прив'язувати в Centos 7 мінімально
onxx

На жаль, /vendor/laracasts/generators/.git/objects/pack/коли під час запуску chattr -i -a .я отримую chattr: Inappropriate ioctl for device while reading flags on ., і я не можу rmнабридливий .idxфайл, який залишив композитор (тому що "Операція не дозволена").
Райан

Аххх, одне вирішення для мене полягало в тому, щоб вийти з мого VirtualBox Laravel Homestead Vagrant назад у Windows 10 (все ще використовуючи Git Bash) та rmфайли звідти. Потім composer updateвдалося завершити.
Райан

chattr -i -aпрацювали.
xji

Навіть після використання Linux протягом майже 10 років я продовжую вивчати нові речі. Ніколи раніше не чув про незмінний атрибут!
марла

9

У мене була подібна проблема, але раніше я намагалася і дозволу, і chattr, безрезультатно. Корінь у терміналі. CD в ​​каталог.

Однак для мене працювало перевірка дозволів каталогу, де знаходився проблемний файл - якщо нормально перейти до:

chmod ugo+w filename

це не вдалося - тоді:

chattr -i -a filename 

яке було прийнято - тоді

chmod ugo+w 

яке було прийнято

rm filename

і його вже не було.

Fedora 25 на робочій станції hp.


"chmod ugo + w filename" повністю зробив для мене трюк
Альфіше

1

'sudo' може запустити команду 'rm' за допомогою тієї самої user.group

ПРИМІТКА : не впевнений, що це також буде працювати для ідентифікаторів, як у вас.

Приклад:

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.