Поиск

Небольшой экскурс в UNIX

Данный раздел предназначен для тех, кто программирует на Perl в UNIX, если же вы не относитесь к этой категории людей, можете безболезненно пропустить его и перейти к следующему разделу. Однако приведенная здесь информация поможет вам разгадать тайну магических чисел, которые нужно указывать при создании каталога.

Начнем с того, что Perl имеет глубокие корни в UNIX. Более того, прототипом некоторых команд и операторов послужили аналогичные команды и вызовы операционной системы UNIX. С большинством таких функций вам никогда не придется сталкиваться. В то же время часть из них, как, например, функция unlink, используется достаточно часто. И несмотря на то что данная функция была также позаимствована из UNIX, большинство пользователей никак не связывает ее с миром UNIX. Причина заключается в том, что средства для удаления файлов есть в любой операционной системе, поэтому Perl делает так, чтобы функция unlink работала всегда, независимо от используемой ОС. Описанная концепция независимости от компьютерной платформы реализована в Perl практически повсеместно, в частности в функциях ввода/вывода. Интерпретатор по возможности делает так, чтобы все вопросы несовместимости были скрыты от пользователя. Все это делает программы на Perl действительно переносимыми.

Тот факт, что в Perl встроено большое количество команд и функций UNIX, которые перенесены на другие (не UNIX) компьютерные платформы, не может не радовать разработчиков и системных администраторов, привыкших работать в среде UNIX. Это позволяет им создать свой замкнутый мир UNIX, независимо от того, на компьютере какого типа они работают.

Как следует из названия следующего раздела, приведенное на страницах этой книги описание прав доступа к файлам системы UNIX и способов их назначения ни в коей мере нельзя считать полным. Чтобы получить исчерпывающую информацию по интересующим вас вопросам, обратитесь к документации по операционной системе или найдите одну из книг по UNIX, выпущенных Издательским домом "Вильяме". За справками обращайтесь по адресу http://vwv.williamspublishing.com.
Немного о правах доступа к файлам

На 1-м занятии, "Начало работы с Perl", без всяких дальнейших объяснений говорилось, что, для того чтобы в UNIX запускать программу на Perl как обычную команду, к файлу, в котором находится эта программа, необходимо применить команду chmod 755 иш_ файпа. Магическое число 755 — это как раз и есть закодированные права доступа, которые назначаются указанному файлу. Таким образом, в системе UNIX для назначения и изменения прав доступа к файлам используется команда chmod.

Каждая из трех цифр представляет собой код прав доступа, которые назначаются владельцу этого файла, пользователям группы, к которой относится файл, и всем остальным пользователям компьютера (рис. 10.1). В нашем случае для владельца код прав доступа составляет 7, для группы — 5, а для всех остальных — 5. Коды прав доступа перечислены в табл. 10.2.

Для установки прав доступа к файлу в Perl используется встроенная функция chmod, синтаксис которой выглядит так:

Данная функция пытается изменить права доступа ко всем файлам, указанным в списке, и возвращает число файлов, для которых эта операция успешно выполнена. При указании кода прав доступа не забудьте только поставить перед числом иифру О, поскольку права доступа задаются в виде восьмеричного литерала. Ниже приведено несколько примеров использования функции chmod.

Выше на этом занятии мы рассматривали функцию mkdir. При описании второго аргумента этой функции мы говорили, что он задает права доступа к каталогу (наподобие того, как функция chmod задает права доступа к файлу). Вот несколько примеров:

Права доступа к файлам в UNIX часто называют режимом доступа (mode). Поэтому название команды chmod расшифровывается как change mode (изменить режим доступа).