Вебломастер - виправлення помилки operation not permitted при видаленні файлу і директорії, прапори,

Часто це відбувається через те. що Ви, як користувач, не наділені достатніми правами. Ви не зможете оперувати з фалами. якщо вони належать супер користувачеві. Або якщо файл «зачарований» за допомогою прапора.

Але що таке прапори? Прапори - це особливі мітки. які системний адміністратор ставить на файли, щоб повідомити операційній системі: що можна робити з файлом (або цілої Директорією), а що робити не можна.
Наприклад, за допомогою прапора. можна заборонити видаляти файли. В такому випадку часто і виникає помилка:

Operation not permitted

Наше завдання дізнатися:

  1. Які прапори встановлені на файл (або директорію);
  2. Прибрати прапори заважають операціями з фалом;
  3. Видалити файл (або цілу директорію).

Перше завдання вирішується в командному рядку за допомогою команди ls:

В результаті ми отримуємо вичерпну інформацію про фото:

-rw-r - r-- 1 root root schg, uappnd 1 Mar 26 21:05 flag.txt

Інформація показує по порядку: права, розмір файлу в байтах, користувача, групу, прапори. дату зміни та ім'я файлу.
Що нас цікавить файл має прапори schg - system immutable і uappnd - user append-only.
Більшість прапорів. так чи інакше заважають видаляти файли. Отже у Вас виникнуть помилки і при переміщенні файлів і директорій.
Для роботи з прапорами використовується команда chflags. Додати прапори про яких ви вже знаєте можна за допомогою такої конструкції команди:

chflags uappnd flag.txt
chflags schg flag.txt

Команда. потім прапор, потім ім'я файлу.
Щоб видалити будь-який прапор потрібно додати приставку no:

chflags nouappnd flag.txt
chflags noschg flag.txt

Ще простіше видалити відразу всі прапори в такий спосіб:

chflags 0 flag.txt

Нуль обнуляє прапори раніше приписані нашого файлу. Якщо Ви маєте справу з директорій. тоді, щоб обнулити всі прапори стосовно до файлів і піддиректоріях знаходяться всередині потрібної папки додається ключ рекурсії -R:

chflags -R 0 nasha_direktoiya

Після того як прапори зняті, залишилося видалити файл командою rm або директорію командою rmdir

rm flag.txt
rmdir nasha_direktoiya

Помилка Operation not permitted більше не повинна нас потурбувати. Будьте обережні видаляючи файли, щоб не видалити щось важливе.