Freebsd принцип призначення прав на файли, каталоги і пристрої, xnix, adminstuff

Принцип призначення прав на файли, каталоги і пристрої (а каталоги і пристрої теж представлені як файли) у FreeBSD дуже простий.

Права бувають трьох типів: на читання / запис / виконання (rwx). Крім того, права можуть прикладатися тільки до трьох об'єктах: власнику, групі, якій належить файл, і всім іншим. Таким чином, права на будь-який пристрій / файл задаються комбінацією з 9 біт. Записується це так:
rwxrwxrwx
що означає - власнику призначені всі права (на читання, запис і виконання) групі призначені всі права, всім призначені всі права (рідко зустрічається ситуація), або:
rwxr-xr--
що означає - власнику призначені всі права, групі на читання і виконання, а всім тільки на читання.

Каталоги також є файлами. До них застосовуються ті ж права на читання, запис і виконання. Правда, в даному випадку '' виконання '' має дещо інший зміст. Коли каталог позначений як '' здійсненний '', це означає, що можна '' зайти '' в нього (за допомогою команди cd, change directory). Це також означає, що в даному каталозі можна отримати доступ до файлів, імена яких відомі (звичайно, якщо власні права на файл дозволяють такий доступ).

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

Для зміни прав застосовується команда chmod. У синтаксисі командного рядка вона використовує "Символічні позначення прав":
Опція Буква Значення
(Хто) u Користувач (User)
(Хто) g Група (Group)
(Хто) o Інші (Other)
(Хто) a Всі (All, '' world '')
(Дія) + Додавання прав
(Дія) - Видалення прав
(Дія) = Явна установка прав
(Права) r Читання (Read)
(Права) w Запис (Write)
(Права) x Виконання (Execute)
(Права) t Sticky біт
(Права) s SUID або SGID
Наприклад, ви можете використовувати наступну команду для заборони доступу інших користувачів до FILE:
% Chmod go = FILE
Для зміни більш ніж одного набору прав можна застосувати список, розділений комами. Наприклад, наступна команда видалить права групи і '' всіх інших '' на запис в FILE, а потім додасть права на виконання для всіх:
% Chmod go-w, a + x FILE
Можна також задавати права в цифровому вісімковому вигляді:
% Chmod 600 logfile