Відмінності між версіями «Спеціальні права доступу (suid, sgid, sticky)»

Матеріал з Wiki TNEU
Перейти до: навігація, пошук
(Створена сторінка: == suid і sgid == У момент вашого входу в систему запускається новий процес оболонки. Ви вже зна...)
 
м (Захист на Спеціальні права доступу (suid, sgid, sticky) встановлено (‎[edit=sysop] (безстроково) ‎[move=sysop] (безстроково)))
 
(38 проміжних версій 3 користувачів не показані)
Рядок 1: Рядок 1:
== suid і sgid ==
 
У момент вашого входу в систему запускається новий процес оболонки. Ви вже знаєте про це, але можете не знати про те, що цей новий процес оболонки (зазвичай це bash) працює від імені вашого користувача. І таким чином програма bash може звертатися до всіх файлів і тек, власником яких ви є. Насправді ми, як користувачі, повністю залежний від програм, що виконують операції від нашого імені. І оскільки програми, які ви запускаєте, успадковують ваш користувальницький ідентифікатор, вони не можуть звертатися об'єктів файлової системи, до яких вам не надано доступ. Приміром, звичайні користувачі не можуть безпосередньо змінювати вміст файлу passwd бо прапор записи вимкнено для всіх користувачів крім root:
 
 
$ Ls-l / etc / passwd
 
 
-Rw-r - r - 1 root wheel 1355 Nov 1 21:16 / etc / passwd
 
Однак, звичайним користувачам теж потрібно мати можливість хоча б опосередковано змінювати вміст / etc / passwd коли їм знадобиться змінити пароль. Але якщо користувач не може змінити цей файл, як це зробити?
 
 
suid
 
 
В моделі прав доступу Linux є два спеціальних біта,
 
званих suid і sgid. Коли для запускається програми встановлений біт suid, вона буде працювати від імені власника виконуваного файлу, а не від імені того, хто запустив програму. Тепер можемо повернутися до питання з / etc / passwd. Якщо подивимося на виконуваний файл passwd, побачимо, що його власником є користувач root:
 
 
$ Ls-l / usr / bin / passwd
 
 
-Rwsr-xr-x 1 root wheel 17588 Sep 24 00:53 / usr / bin / passwd
 
 
Зверніть увагу, що замість x в триплеті прав доступу власника варто s. Це означає що для цієї конкретної програми встановлені біти suid і права на запуск. З цієї причини при запуску програми passwd вона буде працювати від імені користувача root (з усіма правами доступу суперкористувача), а не користувача, що запустив її. І оскільки passwd працює з правами root, вона здатна редагувати / etc / passwd без будь-яких складнощів.
 
 
 
 
== Попередження про suid / sgid ==
 
== Попередження про suid / sgid ==
 
Ми побачили як працює suid, sgid працює схожим чином. Вона дозволяє програмі успадковувати права доступу групи, а не поточного користувача.
 
Ми побачили як працює suid, sgid працює схожим чином. Вона дозволяє програмі успадковувати права доступу групи, а не поточного користувача.

Поточна версія на 23:28, 20 вересня 2012

[ред.] Попередження про suid / sgid

Ми побачили як працює suid, sgid працює схожим чином. Вона дозволяє програмі успадковувати права доступу групи, а не поточного користувача. Важливо! Трохи розрізнена, але в той же час дуже важлива інформація про suid і sgid. По-перше, біти suid і sgid займають ті ж поля у виведенні команди ls-l. Якщо біт x теж заданий, відповідні біти будуть показані як s (у нижньому регістрі). Однак, якщо біт x не заданий то він буде відображатися як S (у верхньому регістрі). Важливо! Ще одне важливе зауваження: suid і sgid бувають зручні в багатьох ситуаціях, але неправильне їх використання може призвести до появи вразливостей в захисті системи. Найкраще мати якомога меншу кількість suid програм. Команда passwd - одна з не багатьох, яка повинна бути suid.


[ред.] Зміна suid і sgid

Спосіб установки і видалення бітів suid і sgid надзвичайно простий. Ось так ми задаємо біт suid:

  1. Chmod u + s / usr / bin / myapp
А в наступному прикладі ми знімаємо прапор sgid з директорії. 

Ви побачите, як біт sgid працює з директоріями нижче:

  1. Chmod g-s / home / drobbins


[ред.] Sticky

Біт, якому в коді режиму доступу відповідає вісімкове значення 1000, називається sticky-бітом ("sticky" - липучка). Це хороший приклад того, як UNIX в міру дорослішання позбувається рудиментів, але вони продовжують слідувати за системою по п'ятах. У системах з невеликою пам'яттю, наприклад PDP-11/70, де UNIX працювала у свої ранні роки, було потрібно, щоб окремі програми постійно залишалися в пам'яті. Тоді sticky-біт був дуже важливий, так як забороняв вивантаження програм з пам'яті. Сьогодні у світі 25-доларових модулів пам'яті і швидкодіючих дискових накопичувачів sticky-біт нікому не потрібний, і сучасні ядра просто ігнорують його. Якщо sticky-біт встановлюється для каталогу, то більшість версій UNIX дозволяють видаляти і перейменовувати його файли тільки в тому випадку, якщо користувач є власником каталогу, власником файлу або користувачем root. Мати одне лише дозвіл на запис у каталог недостатньо. Така міра направлена на те, щоб зробити каталоги зразок / tmp більш захищеними. Системи Solaris і HP-UX не такі суворі щодо каталогів з встановленим sticky-бітом. Користувач, що має право запису в такий каталог, може видаляти з нього файли, навіть якщо він не є їх власником.

Особисті інструменти
Простори назв

Варіанти
Дії
Навігація
Інструменти