Раздел: Документация
0 ... 38 39 40 41 42 43 44 ... 125 Права доступа к ресурсам в UNIX Операционная система UNIX позволяет определять три основные группы прав доступа к файлам и каталогам. Первая группа относится к владельцу файла или каталога, вторая - к группе пользователей, которой принадлежит файл. Третья определяет права доступа всех остальных пользователей. Основные типы прав доступа, которые можно применить к файлу или каталогу: О read (г) - чтение. Позволяет пользователю выводить список файлов в каталоге (включая их атрибуты) и читать содержимое файла; О write (w) - запись. Предоставляет пользователю возможность добавлять или удалять файлы в каталоге и изменять содержимое файла; О execute (х) — выполнение. Пользователь может обращаться к каталогу и запускать на выполнение исполняемый файл. Просмотр прав доступа Просмотреть присвоенные файлам и каталогам права доступа можно с помощью команды Is, как показано ниже: Is -1 /usr/bin/fwadm
Первая подстрока символов в каждой строке вывода называется permissions array (массив прав доступа) и служит для определения типа записи (каталог или файл) и связанных с ней прав доступа. Первые две строки листинга соответствуют каталогам и поэтому начинаются с символа d. Две другие строки, начинающиеся с дефиса (-), отвечают обычным файлам. Впечатление, что оставшиеся три поля разделяются дефисами, ошибочно. Каждая позиция в строке после бита каталога может быть разрешенным или запрещенным правом доступа. Символ дефиса обозначает, что право доступа отсутствует. Например, каталог html имеет массив прав доступа dr-xr-xr-x, который разбивается на четыре части: О позиция 1 - каталог или файл; О позиции 2-4- права владельца; О позиции 5-7 - права группы; О позиции 8-10 - права остальных пользователей. Таким образом, массив прав доступа представляет собой строку из десяти символов, все позиции в которой являются значимыми. В случае каталога html эти права интерпретируются следующим образом: О владелец имеет право на чтение и выполнение; О группа имеет право на чтение и выполнение; О все остальные имеют право на чтение и выполнение. При этом никто не имеет права на запись в каталог. Атрибуты SUID и SGID Кроме этих основных прав доступа, есть два других важных атрибута, которые стоит обсудить: SUID и SGID. В системе UNIX программа выполняется с правами запустившего ее пользователя. Если пользователь является владельцем файла, используются права владельца. Когда пользователь - член группы файла, применяются права группы. Но если программа имеет атрибут SUID (Set User ID - задать идентификатор пользователя), она получает права владельца файла даже при ее запуске другим пользователем. Аналогично атрибут SGID (Set Group ID - задать идентификатор группы) позволяет программе иметь права группы. Эти атрибуты предоставляют программе возможность выполнять недоступные пользователю функции, что бывает важным для работы некоторых процедур. Например, при смене пользователем своего пароля соответствующее приложение записывает изменение в файл /etc /passwd. Но пользователь не имеет доступа к этому файлу на запись, поэтому приложение должно самостоятельно приобрести это право. Проблемы с данными атрибутами возникают при их неправильном применении и ошибках в соответствующих утилитах. Если известно, что в работающей с этими атрибутами программе имеется ошибка, хакер может воспользоваться ею для взлома программы и выполнения нужных ему действий. Хороший стиль программирования заключается в том, чтобы проверять статус возврата всех процедур и перехватывать все возможные ошибки. Определить, установлены ли для файла или каталога атрибуты SUID и SGID можно также при помощи команды Is. Символ s в поле прав доступа владельца на выполнение означает, что установлен атрибут SUID. Если этот символ записан в верхнем регистре, владелец не имеет права на исполнение файла, если в нижнем - может делать это. При установке атрибута SGID соответствующий символ появляется в поле доступа группы на выполнение. Изменение владельца и прав доступа Для изменения владельца ресурса и прав доступа к нему существуют две простые команды - chown (change owner - изменить владельца) и chmod (change permission mode - изменить режим доступа). Синтаксис команды смены владельца файла или каталога: chown [ -fhR ] владелец [ : группа ] файл ... Здесь владелец либо (группа) обозначают идентификатор нового владельца или группы файла, или каталога (файла). Задаются следующие параметры: О -f - подавляет вывод сообщений об ошибках; О -h — изменяет владельца символьной ссылки на файл, а не самого файла; О -R - изменяет владельца всех файлов и подкаталогов текущего каталога. Права доступа к файлу или каталогу меняются командой chmod. Синтаксис этой команды позволяет задавать права доступа двумя различными способами. В первом из них вводится численное значение, а во втором - текстовая строка. Чтобы сделать это немного понятнее, рассмотрим вначале численные значения, которые служат для задания прав доступа: О 0 - нет доступа; О 1 - доступ на выполнение (или поиск в каталоге); О 2 - запись; О 4 - чтение. Чтобы изменить права доступа к файлу при помощи этих значений, надо задать по одной цифре для полей владельца, группы и других пользователей. Значения для различных прав складываются, в результате получается число от 0 до 7. Например, команда: chmod 660 /etc/bca/sw2dd.asc разрешает доступ на чтение и запись (4 + 2 = 6) владельцу и группе. Остальные пользователи не имеют доступа к файлу (0). Второй метод состоит в задании прав доступа при помощи символов, а не численных значений. Различные пользователи обозначаются следующими символами: Ой- владелец; Од- группа; О о - остальные пользователи; О а - все пользователи. Для задания прав доступа употребляются следующие символы: О г - чтение; О w - запись; О х - выполнение; О s - SUID или SGID. При использовании команды chmod нужно указать, к какой группе пользователей относится изменение прав доступа, какие права устанавливаются или снимаются, а также для какого файла или каталога они задаются. При этом работает следующий синтаксис: chmod пользователь функция право доступа Пользователь и право доступа определяются при помощи приведенных выше символов. Функция может иметь одно из следующих значений: О = - установка права доступа; О + - добавление права доступа; О — удаление права доступа. Так, команда: chmod a=rw /etc/bca/sw2dd.asc дает право всем пользователям (а) выполнять запись (w) в файл и чтение (г) из него. В следующем примере отменяется доступ на чтение для остальных пользователей: chmod o-w /etc/bca/sw2dd.asc 0 ... 38 39 40 41 42 43 44 ... 125
|