русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Сполучення бітів доступу


Дата додавання: 2014-11-27; переглядів: 775.


 

Зазвичай права на файл (наприклад, для "всієї решти") встановлюються в такий спосіб:

--- жодних прав (не можна ані читати, ані змінювати вміст);

--- r-- лише читання;

--- rw- і читання і запис (зміна) файла.

Якщо файл є "виконуваний", то права можуть виглядати так:

--- жодних прав (читати не можна, запускати не можна);

--- r-x можна запустити файл-задачу на виконання;

--- rwx можна не лише запустити, але й дещо у ньому змінити.

Інші сполучення (наприклад -w- чи --x) здаються безглуздими. Однак це не завжди є так. Розглянемо докладніше.

Права -w- означають, що користувач з відповідної категорії не може прочитати цей файл, але може в нього писати.

Для " " файла, що виконується, це сполучення є безглузде (запустити як задачу не можна, але "зіпсувати" щось усередині — будь ласка). Якщо цей файл являє собою щось на зразок "лога" чи поштової скриньки, то такі permissions можуть мати сенс. Наприклад, ви припускаєте, що інші користувачі (чи певні програми-автомати) будуть дописувати сюди свої "повідомлення", але не хочете, щоб ті самі користувачі могли переглянути, що саме туди написали інші. Хоча при цьому ніхто не заважає тим самим користувачам просто, не читаючи, записати в цей файл що-небудь, вилучивши при цьому весь старий вміст файла, чи навіть скопіювати туди файл нульової довжини (чи /dev/null); при цьому, природно, взагалі жодного "вмісту" у файла не стане. Однак, щоби запобігти такій ситуації, можна поставити на той самий файл прапорець "лише дозапис". Він не завадить читати свій файл, а іншим користувачам дописувати в нього що-небудь. Щоправда, й не дасть навіть вам стирати з файла все зайве чи вилучити файл, поки ви не "знімете" прапорець.

Для виконуваних файлів права --x є насправді цілком законна комбінація. Вона означає, що запустити цю задачу можна (і одержати від неї певний результат). Не можна лише скопіювати цей файл собі чи "залізти" у його налагоджувач, саме тому такі permissions є навіть корисні, якщо ви хочете зберегти свою "інтелектуальну власність". Комбінація -wx, мабуть, значення не має, як і просто -w- на файлі, котрий виконується. Ви лише надаєте можливість змінити вміст, причому "наосліп" (оскільки переглянути цей вміст не можна). Результатом може бути лише псування вашого файла. Також можна віднести до безглуздих і права r-- на файлі, що виконується. Якщо ви хочете у такий спосіб "подражнити" когось (от є такий файл, можна подивитися, як його усередині влаштовано, а виконати — не можна), то не зваблюйтеся. Інший користувач спокійно може скопіювати цей файл собі, при цьому він стає повноправним власником отриманої копії. Після цього він поставить на свою копію такі права, які йому заманеться, і, врешті решт, запустить його.

Для директорій зазвичай права доступу встановлюються в такий спосіб:

--- — жодних прав; r-x — нормальні права для "відвідування" директорії, але без права зміни (створювати/вилучати/перейменовувати файли); rwx — повний доступ (чини там що заманеться).

Якщо відсутній є біт доступу --x (доступ до вмісту), то кожна комбінація з двох інших нічого корисного не надасть. Комбінація r-- надасть можливість одержати список файлів у цій директорії, наприклад командою ls, і не більш того. Причому побачити можна буде лише імена файлів, а такі “подробиці”, як власник/група/permissions, будуть неприступні. У таку директорію не можна "увійти" командою cd. І навіть якщо усередині її піддиректорії мають цілком нормальні права доступу (наприклад, r-x), потрапити в них буде неможливо.

Комбінації -w- і rw- мають ще менше сенсу. Все одно, змінити щось у директорії з такими правами доступу не вдасться.

А от сполучення --x і -wx є насправді цілком осмислені. У такий спосіб можна створити "напівсекретну" директорію. "Таємність" її полягає в тім, що ніхто сторонній не зможе переглянути, що за файли й директорії в ній розміщено. Але, якщо ви когось повідомите, як називається файл, що міститься там, його можна без проблем вилучити звідти чи переглянути його безпосередньо на місці.

Аналогічно ведеться і з піддиректоріями. Якщо ви не хочете, щоби хто-небудь, знічев’я "блукаючи" вашими директоріями, натрапив на директорію з "секретним" змістом, але водночас дозволяєте обмеженому колу користувачів знайомитися з новими поповненнями, рекомендується свої приватні директорії розмістити в директорії (наприклад private) з доступом --x. Тоді інші зможуть потрапити в потрібну піддиректорію, указавши повний шлях (cd private/pictures), а випадковий відвідувач її взагалі не віднайде (якщо, звичайно, цей відвідувач не є root). Зрозуміло, "таємність" у цьому разі буде неповною, оскільки, якщо сторонній якимось чином дізнається про правильну назву файла чи піддиректорії, то набуде тих самих можливостей, що й "близькі друзі".

Право -wx відрізняється від попереднього тим, що "довіреним особам" можна писати в цю директорію. Вони можуть скопіювати туди файл, вилучити, якщо, певна річ, знають його точну назву, тощо. Знову ж таки, сторонній зможе хіба що записати туди файл, чого ви не пропонували. Вилучити там що-небудь чи перейменувати, не знаючи назв файлів (і піддиректорій), він не зможе. Отже усім користувачам можуть надаватися такі права:

власникові — повні права (rwx);

групі довірених осіб — те ж саме, але без права зміни (r-x);

всій решті — жодних прав (---).

Зазвичай права призначаються навіть ще простіше. Оскільки групи складають root і пересічні користувачі, здебільшого, не обирають собі сусідів по групі, то їхні файли й директорії мають однакові "допуски" для групи і "всієї решти". Наприклад, для "несекретних" файлів (директорій) - rwxr-xr-x, а ті, котрі власник хоче відокремити від сторонніх, — rwx------.

Але в даному разі йдеться не про це. Що буде, якщо "всій решті" надати доступ, нехай і обмежений, а для групи "особливо наближених" — навпаки, заборонити (виглядати це буде приблизно так: - rwx---r-x)? Тоді група, приписана до файла, перетвориться з групи "особливо допущених" на групу "надто небажаних". Тобто певний "чорний список", куди можна занести (природно, зробити це може лише root) усіх тих, хто не користується довірою. Зверніть увагу, що система, перевіряючи права конкретного користувача стосовно файла, спочатку перевіряє, чи не є він власником, потім — чи не входить він у групу, а вже потому відносить його до "всієї решти". Отже, навіть якщо "вся решта" мають допуск до файла, але користувач мав неприємність потрапити у відповідну групу, до нього застосовуватимуть права доступу групи.

 

Контрольні запитання

 

3.1 На які категорії поділяються користувачі?

3.2 Що позначають біти “r” та ”w”?

3.3 Для чого призначено біт suid?

3.4 Для чого призначено біт sgid?

3.5 Для чого призначено біт sticky?

 


<== попередня лекція | наступна лекція ==>
Додаткові біти доступу | Основні поняття клієнт-серверної архітектури


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн