Вебломастер - виправлення помилки operation not permitted при видаленні файлу і директорії, прапори,
Часто це відбувається через те. що Ви, як користувач, не наділені достатніми правами. Ви не зможете оперувати з фалами. якщо вони належать супер користувачеві. Або якщо файл «зачарований» за допомогою прапора.
Але що таке прапори? Прапори - це особливі мітки. які системний адміністратор ставить на файли, щоб повідомити операційній системі: що можна робити з файлом (або цілої Директорією), а що робити не можна.
Наприклад, за допомогою прапора. можна заборонити видаляти файли. В такому випадку часто і виникає помилка:
Operation not permitted
Наше завдання дізнатися:
- Які прапори встановлені на файл (або директорію);
- Прибрати прапори заважають операціями з фалом;
- Видалити файл (або цілу директорію).
Перше завдання вирішується в командному рядку за допомогою команди 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 більше не повинна нас потурбувати. Будьте обережні видаляючи файли, щоб не видалити щось важливе.