FreeBSD является прямым потомком BSD UNIX® и
основывается на некоторых ключевых концепциях UNIX. В
первую очередь это, конечно, тот факт, что FreeBSD - многопользовательская операционная
система. Это означает, что несколько пользователей могут работать одновременно, решая
различные задачи и совершенно не мешая друг другу. На системе лежит ответственность за
правильное разделение и управление такими ресурсами как память, процессорное время,
периферийные устройства и прочее.
Многопользовательская среда предполагает наличие механизма регулирования прав доступа
к любому ресурсу в системе. Существует три типа прав доступа: на чтение, запись и
исполнение. Права сгруппированы три по три, соответственно чтение/запись/выполнение для
владельца/группы/всех остальных. Численное представление:
Вы можете использовать опцию -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).
Предоставил Tom Rhodes.
Символические обозначения, иногда называемые символическими выражениями, используют
буквы вместо восьмеричных значений для назначения прав на файлы и каталоги. Символические
выражения используют синтаксис (кто) (действие) (права), где существуют следующие
значения:
Эти значения используются командой chmod(1) так же как и
раньше, но с буквами. Например, вы можете использовать следующую команду для запрета
доступа других пользователей к FILE:
% chmod go= FILE
Для изменения более чем одного набора прав можно применить список, разделенный
запятыми. Например, следующая команда удалит права группы и ``всех остальных'' на запись
в FILE, а затем добавит права на выполнение для всех:
% chmod go-w,a+x FILE