Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
216
Добавлен:
02.05.2014
Размер:
2.83 Mб
Скачать

32. Понятие пользователь, группа в unix

Каждый файл помимо названия, полного пути, времени создания и т.д. обладает набором атрибутов, определяющих права доступа для любого пользователя. Все пользователи сервера делятся относительно файла на три категории:

  1. владелец файла (как правило тот, кто его создал или скопировал)

  2. пользователи, входящие в группу, к которой принадлежит файл

  3. все остальные пользователи

Все права относительно файла также делятся на три категории:

  1. право на чтение (read - сокращенно "r") файла - позволяет просматривать и копировать содержимое файла

  2. право на запись файла (write - сокращенно "w") - позволяет дописывать и перезаписывать содержимое файла

  3. право на исполнение файла (execute - сокращенно "x") - позволяет отдать операционной системе команду на исполнение файла как программы

Для каждой категории пользователей (владельца, группы, остальных) определяются свои права (на чтение, на запись, на исполнение) - всего получается девять позиций, принимающих значение "есть"/"нет". Как правило, права на доступ к файлу обозначаются девятью символами - три повторяющиеся тройки символов rwx, каждый из символов обозначает присутствие соответствующего права доступа и может быть заменен на "-" если соответствующее право отсутствует. Первая тройка соответствует правам владельца файла, вторая - правам пользователей из той же группы, к которой принадлежит файл, третья - правам для всех остальных. Например, предположим, что для файла myfile имеются следующие права доступа:

  • для владельца - чтение, запись, исполнение (rwx)

  • для группы - чтение, исполнение (r-x)

  • для всех остальных - только чтение (r--)

Тогда права доступа к файлу будут описываться следующей последовательностью символов: rwxr-xr—

Иногда для краткости используют "числовую" форму описания прав доступа - трехзначное число, каждая цифра которого соответствует тройке прав для соответствующей категории пользователей: первая - владельцу, вторая - группе, третья - остальным. Сама цифра образуется суммой чисел, приписываемых каждой категории прав доступа: 1 - исполнение, 2 - запись, 4 - чтение. Таким образом 'rwx' соответствуют 7, 'rw-' - 6, 'r-x' - 5, 'r--' - 4, '-w-' - 2, '--x' - 1, '---' - 0.

Например, предположим, что для файла myfile имеются следующие права доступа:

  • для владельца - чтение, запись (rw-)

  • для группы - чтение (r--)

  • для всех остальных - ничего (---)

В символьной форме такие права доступа будут описываться как rw-r-----, а в числовой форме они выглядят так: 640.

Иногда числовая форма описания прав доступа к файлу включает в себя четыре цифры - в этом случае первая цифра не относится к правам доступа, как таковым (а определяет поведение файла во время исполнения, так что здесь мы этого касаться не будем) и учитывать надо последние три цифры.

Каталог для Unix - одна из разновидностей файла. Соответственно все, что было сказано выше о правах доступа к файлам, относиться и к каталогам. Правда понятия "прочитать", "записать" и "исполнить" в отношении каталога имеют свою специфику:

  • "Чтение" подразумевает получение списка файлов, принадлежащих каталогу - важно помнить, что это не блокирует доступ к самим файлам, лежащим в этом каталоге.

  • "Запись" подразумевает изменение списка файлов, принадлежащих каталогу - чтобы создать файл в каком-либо каталоге, надо быть пользователем, который имеет право записи в этот каталог, чтобы удалить файл, надо иметь не право записи в удаляемый файл (это позволяет только удалить или перезаписать информацию в самом файле), а право записи в каталог, которому файл принадлежит

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

Для файлов, не являющихся cgi-программами - таких как .html, .shtml или .php, - права доступа могут быть установлены в 644 (-rw-r--r--) (запись-чтение для владельца и только чтение для всех остальных).

Для файлов, являющихся cgi-программами (perl-скрипты, скомпилированные C-программы и прочее), права доступа должны быть установлены в  744 (rwxr--r--) (исполнение-запись-чтение для владельца и чтение для всех остальных). Нельзя разрешать запись в файл с cgi-программой кому-либо, кроме владельца - попытку запустить такую cgi-программу веб-сервер считает ошибкой.

При разработке cgi-программ учитывайте, пожалуйста, что web-сервер запускает их от имени пользователя-владельца сайта. Если Ваша cgi-программа работает с файлами данных (записывает в них что-либо), то эти файлы должны иметь права доступа  600 (rw------).

PHP-скрипты запускаются от имени пользователя, не являющегося пользователем-владельцем сайта поэтому для файлов данных, которые используют PHP-скрипты, необходимо установить права 666 (rw-rw-rw-), а если php-скрипт создает в каком-либо каталоге новые файлы, то этот каталог должен иметь права на запись "для всех" - например 777 (rwxrwxrwx).

Права на каталоги мы рекомендуем устанавливать в 755 (rwxr-xr-x). Эти же права устанавливаются по умолчанию при создании нового каталога. Нельзя разрешать запись в каталог с cgi-программой кому-либо, кроме владельца - попытку запустить cgi-программу из такого каталога веб-сервер считает ошибкой.