Навіщо змінювати власника символічного посилання в Linux?


12

У Linux можливо змінити власника або власника групи символічного посилання (symlink). Мені було цікаво, чому хтось хотів би це зробити, оскільки дозволи доступу посилання не використовуються під час доступу до файлу через нього.

Я можу лише уявити один випадок використання, коли це може бути корисним: дозволити користувачеві видалити симпосилання в каталозі з липким бітом.

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

Відповіді:


6

Припустимо, root працює в каталозі, в який може писати Єва. У fooцьому каталозі є файл, який потрібно змінити, щоб належати Єві. Отже, кореневі типи chown eve foo. Але безпосередньо перед тим, як корінь вдарить Enter, Ева запускається ln -sf /etc/passwd foo. Тепер /etc/passwdналежить Єві! Якщо корінь може працювати, chown -h eve fooщоб переконатися, що не слідкувати за посиланнями, то найбільша шкода, яка може бути завдана, полягає в тому, що якийсь інший файл у тому ж каталозі було змінено, щоб належати Єві.

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


"Якщо root може запустити chown -h bob foo, щоб переконатися, що він не слідує за посиланнями, то найбільша шкода, яку можна зробити, - це те, що якийсь інший файл у цьому ж каталозі змінено на належність Eve." Я здогадуюсь, ви маєте на увазі "чоун -hve foo". Інший файл, який може бути змінений, це символічне посилання, я прав?
user368507

@ user5528 Інший файл може не бути символьним посиланням: Eve все ще може працювати mv myfile foo, і root в кінцевому підсумку змінить власника myfile. Але myfileповинен бути файл, який Єва може створити або перемістити у цей каталог, це не може бути жодним файлом у системі.
Жил "ТАК - перестань бути злим"

2
Хоча це цікаво і очевидно схвалено запитувачем, я не бачу, як ця відповідь вирішує питання. Здається, більше пояснюється, чому можна використовувати chown -hяк запобіжний захід при зміні права власності на файл, який не повинен бути символьним посиланням, але все-таки може бути (крайній випадок, IMO). Це не пояснює, чому можна було б змінити право власності на файл, який насправді має бути символьним посиланням, і саме це питання задається.
Іван X

Чому б chownзмінити власника "файла поза деревом" - це все, що ви змінюєте, це власник каталогу?
Мелаб

@Melab Коли ви змінюєте власника дерева каталогів , тобто відмикаєте утиліту chown -R, яка викликає (l)chownсистемний виклик кожного запису каталогу. Якщо запис у каталозі є символічним посиланням, ви не повинні викликати chownсистемний виклик по ньому, оскільки це вплине на ціль посилання, яка може бути розташована поза деревом.
Жил "ТАК - перестань бути злим"

8

Apache може бути налаштований на наступні посилання, лише якщо власник посилання відповідає власнику пункту призначення. Це може допомогти запобігти користувачам створювати посилання для веб-доступу до файлів, якими вони не володіють (наприклад, / etc / passwd).

... так, скажімо, ви, як root, хотіли , щоб Apache перейшов за посиланням, щоб відобразити певний логфайл, який належав xymon чи щось подібне, але ви не хотіли розслабляти безпеку apache, дозволяючи йому слідувати посиланнями незалежно від власника . Тоді ви, можливо, захочете зробити ксимон власником симпосилання.


1
Добре. Я знаю, що це не пов'язано, але який сенс такої поведінки в апачі? Я маю на увазі, якщо користувач може прочитати файл, навіщо турбуватися читати його з веб-доступу? thx
user368507

Ну, це не лише місцевий користувач, який читає файл; якщо апач може прочитати його, то потенційно кожен може прочитати його. І якщо якась вразливість apache дозволила створити символьне посилання на /etc/passwd, то badguy, можливо, прочитав би доступ до цього файлу, не маючи іншого локального доступу - але це було б зірвано тим, що симпосилання належить апачу.
Ларс Рорбах

4

Перша відповідь, схоже, не стосується питання, а друга стосується лише Apache.

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

Інша справа, що звичайний користувач може змінити групове право власності на файл, лише якщо користувачеві належить файл (а також він є членом групи, до якої додається файл.), Що викликає питання про те, до чого належить група. символічне посилання робить. В організації може бути корисним як тег, щоб вказати, якій команді знадобиться посилання.

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

Редагувати: Я щойно зрозумів ще одну причину важливості власності. Посилання може знаходитися всередині липкого каталогу, де лише власник файлу може видалити або перейменувати його.


0

У мене є програма, яка додає файл журналу. Ці файли журналів створюються щомісяця, кожен має інше ім'я. Замість того, щоб програмне забезпечення з'ясувало точне ім'я файлу, я використовую "загальне" ім'я файлу (скажімо data.log), яке є символічним посиланням, яке вказує на поточний файл за цей місяць. Це автоматизовано на роботі з кроном.

Тепер, коли створюється новий щомісячний файл, він повинен вказувати символічне посилання на новий файл. Якщо існує конфлікт власності / групи, програмне забезпечення не може змінити символічне посилання. Тому вам потрібні права власності / групового запису, щоб змінити символічне посилання.


0

Якщо ви хочете мати посилання на файл на екрані, що відкривається, символічне посилання має бути в

"/ home / username / Desktop"

каталог.

І, саме символічне посилання повинне мати власне root: root (0: 0), інакше посилання не працює.

(Ubuntu / Debian тощо)

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