Intereting Posts
Сценарий Bash для запуска команд tmux и issue Установка USB-накопителя вместо жесткого диска Низкий уровень громкости на материнской плате Z97 и Linux Mint KDE ssh удаляет удаленную команду с псевдотерминалом Настройка бесclassовых статических маршрутов вручную в GCE Как установить dd-образ, созданный с помощью fmem (инструмент дампа памяти) Является ли `bash –posix` необходимым для bash 4, когда передается опция` set` для подсетей? В каком смысле SATA «разговаривает» с SCSI? Сколько разделяется между SCSI и ATA? Эта ошибка указывает на ошибку в моей файловой системе btrfs просто ошибку в ядре 4.2.0-RC5? Как получить хороший (Windows-подобный) рендеринг шрифтов на Linux Mint KDE Есть ли сжатый бок о бок diff формат? Выключение ПК после приостановления процесса терминала (apt-get upgrade) как узнать полный путь команды из результата lsof -i Что означает «управляемый» в имени пакета бабушки? Передача или отправка машиносчитываемого кода в ssh-клиенты

Не удалось удалить файл в Fedora

У меня есть файл со следующим разрешением:

-rwSr-s---. 1 1634630331 1818884080 118784 Jun 29 1970 DailyUpdateClass.class 

Если я попытаюсь удалить этот файл с корневым входом, я получу ошибку.

 rm: cannot remove 'model/DailyUpdateClass.class': Operation not permitted 

Я не могу изменить право собственности, и я ничего не могу сделать.

Я разместил его на StackOverflow и попробовал несколько вещей, но пока не помог.

Мне было рекомендовано, чтобы я попробовал это на Unix Stack Exchange, так что вам нужна ваша помощь.

Ряд возможностей:

  • -rwSr-s---. точка в строке разрешений файла -rwSr-s---. указать расширенные разрешения, либо SE Linux (подтвердить с помощью ls -lZ ), либо разрешения в стиле ACL (подтвердить с помощью getfacl ), которые могут блокировать переопределения корня.
  • файл был сделан неизменным с chattr ; подтвердить атрибуты файловой системы с помощью lsattr
  • Файл находится в файловой системе NFS, которая экспортируется с параметром root_squash который переназначает удаленного пользователя root в непривилегированную учетную запись. Запустите команду rm как фактический владелец файла, а не, например, sudo -u <file_owner> rm filename
  • файл находится в файловой системе только для чтения, подтвердите команду mount или /proc/mounts
  • IIRC вы не можете удалить специальные записи устройств, которые представляют параметры ядра, такие как файлы в файловых системах proc и sysfs , так ли это?

В вашем файле есть immutable расширенный набор атрибутов, поэтому вы не можете его удалить.

lsattr возвращает расширенные атрибуты в файле:

 $ lsattr model/DailyUpdateClass.class -u-Diad--j------ DailyUpdateClass.class 

Вам нужно будет расшифровать все буквы ( -u-Diad--j )

Страница man для lsattr скажет вам посмотреть man-страницу chattr для описания расширенных атрибутов. Я перечислил соответствующие здесь:

Когда файл с набором атрибутов u удаляется, его содержимое сохраняется. Это позволяет пользователю запрашивать его удаление. Примечание. Обязательно прочтите раздел «Ошибки и ограничения» в конце этого документа.

Когда каталог с набором атрибутов D изменяется, изменения записываются синхронно на диске; это эквивалентно dirsync монтирования dirsync применяемой к подмножеству файлов.

D немного беспокоится – по-видимому, он используется только в каталогах, но у вас есть файл.

Файл с атрибутом i нельзя изменить: его нельзя удалить или переименовать, никакая ссылка не может быть создана для этого файла, и никакие данные не могут быть записаны в файл. Только суперпользователь или процесс, обладающий возможностями CAP_LINUX_IMMUTABLE, могут установить или очистить этот атрибут.

Файл с набором атрибутов может быть открыт только в режиме добавления для записи. Только суперпользователь или процесс, обладающий возможностями CAP_LINUX_IMMUTABLE , могут установить или очистить этот атрибут.

Файл с набором атрибутов d не является кандидатом на резервное копирование при запуске программы дампа (8).

Файл с атрибутом j имеет все свои данные, записанные в журнал ext3 или ext4, прежде чем записываться в сам файл, если файловая система смонтирована с параметрами data=ordered или data=writeback . Когда файловая система смонтирована с параметром data=journal все данные файла уже зарегистрированы и этот атрибут не действует. Только суперпользователь или процесс, обладающий возможностями CAP_SYS_RESOURCE , могут установить или очистить этот атрибут.

Чтобы исправить это, используйте chattr . Например, чтобы удалить неизменяемые и добавить атрибуты:

 # chattr -ia model/DailyUpdateClass.class