rm: не вдається видалити каталог /: Дозвіл відхилено


17

Я зробив каталог під назвою "shadi" і встановив цей дозвіл на нього

sinoosh@ubuntu:/home$ ls -ld shadi
drwxr-xrwx 2 root root 4096 Jul  1 01:58 shadi

У цій ситуації у мене є "інші" дозволи, але чому я не можу її видалити?

sinoosh@ubuntu:/home$ rm -r shadi/
rm: cannot remove ‘shadi/’: Permission denied

Відповіді:


25

Тут проблема полягає в тому, що у вас немає дозволу "w" на /homeкаталог. Під час видалення файлу зауважте, що ви не пишете в цей файл, але ви змінюєте вміст каталогу, який містить файл, тому отримання дозволу "w" в каталозі є обов'язковим, якщо ви хочете видалити будь-який файл з каталогу.

скріншот терміналу "ls -ld / home"

Якщо я перебуваю в каталозі з дозволом "w", я можу видалити будь-який з його файлів, не турбуючись про сам дозвіл на файл. Зауважте, що в моєму теперішньому каталозі є /home/rohithдозвіл "w", а отже, я можу видалити будь-який з його файлів, незалежно від дозволу на файл.

скріншот видалення / home / rohith / shadi

Якщо той самий файл створений у каталозі '/ home', який не має дозволу "w", я отримую такий же вихід, як і ваш! :)

скріншот терміналу спроби видалити / home / shadi


9

Це трапляється тому, що у вас немає каталогу, він належить 'root' та 'root' групі. Отже, щоб видалити його, ви можете або змінити право власності, а потім видалити (тут ви підвищуєте свої права і стаєте «коренем» для отримання права власності):

sudo chown $USER:$USER ./shadi
rm -r ./shadi

Або ви пропускаєте право власності і вказуєте на те, sudo rmщоб підвищити свої права та стати "коренем" для видалення:

sudo rm -r ./shadi

це означає, що лише власники можуть видаляти файли?
Сінуш

Так, або вам потрібно підвищити свої права за допомогою sudoкоманди. тоді ви запитаєте ваш пароль, і ви станете «root» для конкретної наступної команди.
Videonauth

зробити вам зараз , якщо «Шаді» був файл я можу видалити його з «sinoosh» користувач .Це не вимагає «Суду» його не зробити сцену для мене , чому він не працює з каталогами
Sinoosh

6

Спробуйте це:

sudo rm -r ./shadi

У дозволах вказано корінь власника та групу, тому вам доведеться використовувати sudo.


1
Так, ця команда в порядку, але моя проблема полягає в тому, що rm не працює з цими дозволами, я маю повні дозволи для цього каталогу в іншому полі
Sinoosh

"У мене є повні дозволи для цього каталогу" Ні, ви цього не робите. "інше поле" шаді - це не "інші".
Rinzwind

але "sinoosh" належить іншим, і він виконує "rm -r shadi"
Sinoosh

0

Це різні рахунки.

Як би ви очікували безпеки від свого облікового запису, якби кожен мав дозвіл на видалення домашнього каталогу?

Ви не маєте wдозволу видаляти чужий домашній каталог за замовчуванням, за винятком випадків, коли вони є chmod +w.

Ось різні дозволи та приклад ( -rwxr-x---/ rwxrx):

+ - + - + - + - +
| + | у | г | о |
+ - + - + - + - +
| r | 1 | 1 | 1 |
+ - + - + - + - +
| ш | 2 | 2 | 2 |
+ - + - + - + - +
| х | 4 | 4 | 4 |
+ - + - + - + - +
| * | 7 | 5 | 0 |
+ - + - + - + - +
Це виглядає наступним чином : 1 + 2 + 4 = 7, 1 + 4 = 5, 0 = 0, так 750, тобто система ідеально дозвіл. Власник ( uу даному випадку) може читати, записувати та виконувати файл, група власника ( gу цьому випадку) може читати та виконувати, і ніхто інший ( oу цьому випадку) нічого не може зробити. Це легендарне:
u: поточний користувач (користувач)
g: групи поточних користувачів (Групи)
o: не поточні групи користувачів (інші)
r: дозвіл на читання (Read)
w: дозвіл на написання (Write)
x: виконати дозвіл (X-ecute)
.

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