Чому я не можу видалити файл, на якому увімкнено груповий дозвіл на запис?


26

У мене є файл із такими дозволами:

root:data, і chmodвстановлено 775.

Мій звичайний користувач, назвемо його бобі, в dataгрупі.

Чому я не можу видалити файл із користувачем boby?

 rwxrwxr-x 18 кореневих даних 4096 2011-12-30 22:02 зберігання
 мій користувач перебуває в групових даних, але не може записати його на зберігання

Відповіді:


32

Тому що, видаляючи файл, ви не лише модифікуєте файл, але і модифікуєте його каталог.

Отже, якщо ваш файл:

rwxrwxr-x

Ви зможете зробити:

cp /dev/null <filename>

Але якщо дозволу на ваш каталог:

rwxr-xr-x  root  data  <directory name>

Тоді система не дозволить вам видалити файл.


У мене в каталозі drwxrwxr-x, я думаю, це має щось
спільне

2
@ user56301 d просто вказує, що цей файл є каталогом. Яке право власності на каталог?
Карлсон

drwxrwxr-x 18 кореневих даних
danidacar

Спробуйте запустити як користувача bobyнаступне:cd <directory> ; touch test_file ; rm test_file
Карлсон

@ user56301 чи можете ви створити файл у цьому каталозі? якщо ви не можете, то ви точно не можете видалити файл.
Багата Гомолка

12

Видалення файлів базується на perms-каталозі, а не на perms-файлі (*).

Чи є у вас дозволи на запис у каталозі, який містить файл?

(*) Caveat, у вас може бути каталог, в якому ви застосовуєте, що видалити його може лише власник файлу. Це корисно для температурних панів.


Подивіться також тут: superuser.com/questions/784952/…, де обговорюється те саме.
Meetai.com

1

Якщо каталог, що містить, не дозволяє користувачеві bobyабо dataгрупі писати до нього, це пояснює цю поведінку.


2
Тож на весь шлях потрібен дозвіл групи? Це працює так.
danidacar

1
@user: Не весь шлях - лише безпосередній батьківський каталог файлу. Ви лише змінюєте вміст каталогу. Ці високі батьки не мають значення взагалі .
grawity


1
Це не зовсім так. Вам потрібно лише записати perms в каталог, що містить. Перманентні речовини можуть бути будь-якими користувачами, групами чи іншими особами, це не повинно бути груповими хімічними речовинами, які дозволяють вам.
Багата Гомолка

@Rich: AFAIK, перевіряється лише один набір. Якщо ви є власником, система перевірятиме лише "власник" perms, а не "group" та "other". Якщо ви перебуваєте в групі, система не перевірятиме «чужі» кари. ( touch foo; chmod 6 foo; ls -l foo; cat foo)
grawity

1

Я спробував те саме, і зіткнувся з тією ж проблемою.

Початок нового термінального сеансу проблема. Цього можна досягти:

  1. Вихід із системи та вхід у систему
  2. Перехід до однієї з 6 тит (Ctrl + Alt + F1-6) (Примітка: Ctrl + Alt + F7 - це ваш сеанс GUI)
  3. використовуючи su bobyдля початку нового сеансу для користувача boby.

Ура!


Він згадує, що вже зареєстрований як бобі
канадський Лука REINSTATE MONICA

Йому потрібно знову увійти до системи, оскільки bobyстарий сеанс здається несвіжим і не відображає зміни в асоціації групи.
Here Be Wolves

1

Б'юсь об заклад, що файл, який ви намагаєтесь видалити, знаходиться в / tmp.

Див. Linux - член групи не може видалити файл з дозволу rw

/ tmp зазвичай встановлює режим "липкий", який називається "обмеженим видаленням" (o + t). Якщо встановити цей режим, лише власник файлу може переміщувати або видаляти файли в цій директорії незалежно від дозволів.

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