Undeletable directory

Все, что я пробовал (всегда с привилегиями суперпользователя), потерпел неудачу:

# rm -rf /path/to/undeletable rm: cannot remove '/path/to/undeletable': Is a directory # rmdir /path/to/undeletable rmdir: failed to remove '/path/to/undeletable': Device or resource busy # lsof +D /path/to/undeletable lsof: WARNING: can't stat(/path/to/undeletable): Permission denied lsof 4.86 latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/ latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ latest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man usage: [-?abhKlnNoOPRtUvVX] [+|-cc] [+|-ds] [+DD] [+|-f[gG]] [+|-es] [-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+m [m]] [+|-M] [-o [o]] [-ps] [+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-us] [+|-w] [-x [fl]] [--] [names] Use the ``-h'' option to get more help information. 

Когда я пытаюсь использовать любой из вышеперечисленных без привилегий суперпользователя, результаты в основном одинаковы. Единственное различие заключается в том, что начальное сообщение WARNING от команды lsof имеет Input/output error вместо Permission denied от прав. (Это небольшое различие само по себе уже достаточно озадачивает, но, что бы …)

Как я могу стереть этот каталог?

One Solution collect form web for “Undeletable directory”

 # rm -rf /path/to/undeletable rm: cannot remove '/path/to/undeletable': Is a directory 

rm вызывает stat(2) чтобы проверить, является ли /path/to/undeletable каталогом (который должен быть удален rmdir(2) ) или файлом (для удаления с помощью unlink(2) . Поскольку вызов stat не работает (мы будем см. почему в минуту), rm решает использовать unlink , что объясняет сообщение об ошибке.

 # rmdir /path/to/undeletable rmdir: failed to remove '/path/to/undeletable': Device or resource busy 

«Устройство или ресурс занят», а не «Каталог не пуст». Поэтому проблема заключается в том, что каталог используется чем-то, а не содержит файлы. Наиболее очевидным «используемым чем-то» является то, что это точка монтирования.

 # lsof +D /path/to/undeletable lsof: WARNING: can't stat(/path/to/undeletable): Permission denied 

Это подтверждает, что stat в каталоге не удалась. Почему у root не было разрешения? Это ограничение FUSE: если не установлено с параметром allow_other , файловые системы FUSE могут быть доступны только процессам с тем же идентификатором пользователя, что и процесс, который предоставляет драйвер FUSE. Этот корень поражен этим.

Таким образом, у вас есть файловая система FUSE, установленная пользователем без полномочий root. Что ты хочешь делать?

  • Скорее всего, вы просто раздражены этим каталогом и хотите его размонтировать. Корень может это сделать.

     umount /path/to/undeletable 
  • Если вы хотите избавиться от точки монтирования, но сохраните крепление, переместите его с помощью mount --move . (Только для Linux)

     mkdir /elsewhere/undeletable chown bob /elsewhere/undeletable mount --move /path/to/undeletable /elsewhere/undeletable mail bob -s 'I moved your mount point' 
  • Если вы хотите удалить файлы в этой файловой системе, используйте su или любой другой метод для переключения на этого пользователя, а затем удалите файлы.

     su bob -c 'rm -rf /path/to/undeletable' 
  • Если вы хотите удалить файлы, скрытые точкой монтирования, не нарушая монтирование, создайте другое представление без точки монтирования и удалите из него файлы. (Только для Linux)

     mount --bind /path/to /mnt rm -rf /mnt/undeletable/* /mnt/undeletable/.[!.]* /mnt/undeletable/..?* umount /mnt 
  • fdupes - удалять файлы после сравнения двух каталогов
  • Не удалось удалить файл, что бы я ни делал
  • Что делать после отмены «rm -rf / usr /» на Arch?
  • Команда «sudo rm \\» зависает - хотите, чтобы система не наносила ущерба системе
  • Безопасно ли удалять файлы .journal ~?
  • Защитите файлы от `rm -f`
  • Файл / каталог не удаляется?
  • Удаление многих файлов, кроме одного типа
  • Как удалить файлы, которые не заканчиваются на «.c»?
  • Git - удалить файл из двух ветвей
  • Удалите файл с именем '
  • Linux и Unix - лучшая ОС в мире.