chown - Операція заборонена


37

Я ввійшов як мінімум.

Я не розумію, чому це не дозволяє мені порушити файл, яким я володію, без права пільг. Очевидно, я можу використовувати судо, але я хотів би зрозуміти, чому? через групу даних www?

chown minime:www-data user-functions.php

ls -lh

-rw-r--r--  1 minime minime    24K Jan  6 16:11 user-functions.php

Error:

chown: changing ownership of `user-functions.php': Operation not permitted

Відповіді:


51

Непривілейовані користувачі (не root) не можуть передавати chownфайли іншим користувачам. Для використання chownкористувач повинен мати привілеї цільового користувача. Іншими словами, лише ви rootможете надати файл іншому користувачеві.

Як пояснено тут (спасибі @slhck):

Тільки процеси з ефективним ідентифікатором користувача, рівним ідентифікатору користувача файлу, або з відповідними привілеями, можуть змінити право власності на файл. Якщо _POSIX_CHOWN_RESTRICTED діє для шляху:

  • Зміна ідентифікатора користувача обмежується процесами з відповідними привілеями.

  • Зміна групового ідентифікатора дозволена до процесу з ефективним ідентифікатором користувача, рівним ідентифікатору користувача файлу, але без відповідних привілеїв, якщо і лише тоді, коли власник дорівнює ідентифікатору користувача файлу або (uid_t) -1 і група дорівнює або до ефективного ідентифікатора групи виклику, або до одного з додаткових ідентифікаторів групи.

Обґрунтування цього чітко пояснило @Gilles у цій відповіді Unix & Linux:

Причиною цього обмеження є те, що передача файлу іншому користувачеві може призвести до того, що погані речі трапляються в нечастому, але все ж важливому випадку. Наприклад:

  • Якщо в системі увімкнено дискові квоти, Аліса могла створити файл, що записується у світі, під каталог, доступний лише їй (щоб ніхто більше не міг отримати доступ до цього світового файлу в каталозі), а потім запустити chown, щоб зробити цей файл власником інший користувач Білл. Файл тоді зараховуватиметься до дискової квоти Білла, навіть якщо тільки Аліса може використовувати цей файл.
  • Якщо Аліса передає файл Біллу, то немає й сліду, щоб Білл не створив цей файл. Це може бути проблемою, якщо файл містить незаконні дані або іншим чином компрометує дані.
  • Деякі програми вимагають, щоб їх вхідний файл належав певному користувачеві для автентифікації запиту (наприклад, файл містить деякі інструкції, які програма виконує від імені цього користувача). Зазвичай це не безпечна конструкція, оскільки навіть якщо Білл створив файл, що містить синтаксично правильні інструкції, він, можливо, не мав наміру виконувати їх саме в цей час. Тим не менш, дозволити Алісі створити файл з довільним вмістом і взяти його за вхід із Білла може лише погіршити ситуацію.


Дякую @slhck, я перевірив manсторінку і не зміг знайти явної згадки про це, відповідь оновлений.
тердон

чудово! Наскільки зрозуміло зараз ... що робити, якщо minime є частиною групи даних www?

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