FreeBSD, бидейки директен потомък на BSD UNIX®, е базирана на няколко ключови UNIX концепции. Първата и най-често споменавана е, че FreeBSD многопотребителска операционна система. Системата може да обслужва няколко потребителя, работещи едновременно върху напълно различни задачи. Системата отговаря за точното споделяне и управление на заявките към хардуерните устройства, периферията, паметта, процесора от всеки потребител.
Поради възможността на системата да обслужва много потребители, всичко, което тя управлява има набор от права, определящи, кой може да чете, пише и изпълнява даден ресурс. Тези права се съхраняват във вид на число, съставено от три цифри, една за собственика на файла, една за групата, към която принадлежи собственика и една за всички останали. Това цифрово представяне изглежда така:
| Стойност | Права | Списък на файлове/директории |
|---|---|---|
| 0 | Няма право да чете, няма право да пише, няма право да изпълнява | --- |
| 1 | Няма право да чете, няма право да пише, може да изпълнява | --x |
| 2 | Няма право да чете, може да пише, не може да изпълнява | -w- |
| 3 | Няма право да чете, може да пише и изпълнява | -wx |
| 4 | Има право да чете, не може да пише и няма право да изпълнява | r-- |
| 5 | Има право да чете, няма право да пише и изпълнява | r-x |
| 6 | Има право да чете, има право да пише, не може да изпълнява | rw- |
| 7 | Има права за четене, писане и изпълняване | rwx |
Можете да използвате -l аргумент от командната линия на ls(1) за да покажете подробен списък съдържащ колони с информация за правата за достъп, за групата и за всички останали. На пример ls -l в директория би показал резултат:
% ls -l total 530 -rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile -rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile -rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt ...
Ето какво означава първата колона на ls -l :
-rw-r--r--
Първия (най-ляв) символ показва дали това е обикновен файл, директория специално устройство, сокет или друго псевдо-устройство. В нашия пример - показва, че това е обикновен файл, следващите три символа rw- в примера показват правата за достъп на собственика. Следващите три символа r-- са правата на групата на която принадлежи файлът. И последните три r-- са правата на всички останали Черта озвачава, че правата за достъп са изключени. В случая с този файл, правата означават, че собсвеника може да чете и да пише във файла, групата която го притежава може само да чете от него и останалите потребители могат само да четат от него. Съгласно таблицата по-горе, правата за този файл биха били 644, където всяка цифра представлява една от трите групи на правата за достъп до този файл.
Всичко това е чудесно, но как операционната система контролира правата за достъп до устройствата? FreeBSD всъчщност третира повечето хардуер като файлове които програмите могат да отварят, четата и пишат данни точно както всеки друг файл. Тези специални файлове се намират в директория /dev.
Директориите също се третират като файлове. Те имат права за четене, писане и изпълнение. Бита който задава правата за изпълнение има леко по-различно значение от правата за файлове. Когато директория е маркирана като изпълнима, това означава че може да се влезе в нея с ``cd'' (change directory). Това означава също така, че е има достъп до файловете вътре в нея ако се знаят имената им (ако разбира се правата на самите файлове го позволяват).
В частност, за да генерирате списъка с файлове в директория, трябва да са установени права за четене, за да се изтрие файл чието име е известно трябва да е разрешено писането и изпълнението на файлове във директорията съдържаща файла.
Има и други битове задаващи права за достъп, но те се използват главно при специални ситуации, като setuid (със зададен потребител при изпълняване) бинарни файлове и sticky (маркирани) директории. Ако искате повече информация прегледайте страниците от ръководството на chmod(1).
Символичните права права, понякога се споменават като символични изрази използващи символи на мястото на окталните стойности за присвояването на правата за директории и файлове. Те използват синтаксиса (кой) (действия) (права), където следните стойности са допустими:
| Опция | Символ | Представя |
|---|---|---|
| (кой) | u | Потребител (user) |
| (кой) | g | Група собственик |
| (кой) | o | Други (others) |
| (кой) | a | Всички (All) (``останали'') |
| (действие) | + | Добавяне на права |
| (действие) | - | Премахване на права |
| (действие) | = | Изключително зададени права |
| (права) | r | Четене (read) |
| (права) | w | Писане (write) |
| (права) | x | Изпълнение (execute) |
| (права) | t | Маркиращ бит (sticky bit) |
| (права) | s | Зададен потребител или група (set UID or GID) |
Тези стойности се използват с chmod(1) командата точно както беше обяснено, но със символи. Например, можете да използвате следната команда, за да блокирате достъпа за други потребители до определен FILE:
% chmod go= FILE
Можете да зададете и списък разделен със запетая, когато трябва да направите повече от една промяна върху файл. Например следната команда ще премахне груповите и правата за писане на ``всички'' останали върху FILE, и след това ще добави права за изпълнение за всички останали потребители:
% chmod go-w,a+x FILE
Този и други документи можете да намерите в ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
За въпроси относно FreeBSD, прочетете документацията преди да попитате в <questions@FreeBSD.org>.
За въпроси относно този документ, e-mail <doc@FreeBSD.org>.