Наверное, многие слышали, про выставления прав доступа на сервере, или видели такое выражение типа: chmod 0755 или права доступа = 755... Например при размещение форума в интернете, вас предупреждают что необходимо выставить права доступа для определенных папок, даже возьмем например, те же самые биржы купли-продажи ссылок (напр. sape.ru, m-links и др.) которые дают для установки на ваш сайт, динамический код (обычно это код на php) и просят вас выставить права доступа на определенную папку (файл).
Так как большинство серверов работает на базе UNIX систем, мы рассмотрим, как и почему нужно выставлять права доступа к файлу или каталогу (папке).
Для начала немного теории.
Права доступа (к файлу или каталогу) - это атрибуты файла или каталога (папки), которые указывают серверу, кто и что может делать с определенным файлом или каталогом.
В UNIX системах, все пользователи подразделяются на три группы:
User - владелец файла,
Group - член группы, в которую входит владелец
Other – это все остальные.
Т.е. Если вы например заходите по FTP на сервер под своим логином и паролем, то сервер относит вас к группе User (владелец файла), если подключаются по FTP другие пользователи, то сервер относит их к группе Group (член группы, в которую входит владелец), а все остальные пользователи попадающие к вам на сайт через браузер, относятся к группе Other.
Первая цифра указывает права доступа для группы User (т.е. для фактически вас), вторая цифра указывает права для группы Group, ну а третья – для группы Other.
Если указанны права доступа вида 0755, то здесь, чтобы удостовериться в том, что режим (права) был установлен верно, предваряется значение нулем (так указываются права, при выставлении прав через скрипт, мы это рассмотрим ниже), но оно равносильно – 755
После выставление прав доступа, для каждой группы, тот или иной пользователь сможет выполнять определенные действия с файлом или каталогом. Обычно действия такие:
- Чтение (read)
- Запись (write)
- Выполнение (execute)
И всего, для выставления прав доступа, существует 7 вариантов:
7 - read, write и execute (право на чтение, запись и выполнение)
6 - read и write (право на чтение и запись)
5 - read и execute (право на чтение и выполнение)
4 - read (право на чтение)
3 - write и execute (право на запись и выполнение)
2 - write (право на запись)
1 - execute (право на выполнение)
Например: права доступа = 755 дает: полный доступ для владельца (User) и доступ на чтение и выполнение для других (Group и Other).
Так же, для установки прав доступа, используется буквенный формат. Т.е. используются буквы "r", "w", "x" для read, write, execute соответственно и “-“ = нет права.
Например: значение прав “r w x r - x r – x” соответствует chmod 755. т.е. первые 3 символа (r w x) для группы User, означают read, write и execute, затем следующие 3 символа (r – x) для группы Group, означают read, “-“ (нет права на запись), execute, и последние 3 символа, для группы Other, права доступа такие же как и для группы Group.
Теперь рассмотрим, как же нам изменить права доступа к файлу или каталогу
Для того чтобы изменить права доступа для файла или каталога, можно воспользоваться любым файловым менеджером (возможно, скорей всего вы с помощью них и закачиваете сайт на сервер), мы рассмотрим только на примере двух, одних из самых популярных файловых менеджеров, это Total Commander и Far.
Total Commander
Сначала заходим на сервер через FTP соединение, встаем курсором на нужную папку или файл (можно выбрать несколько), затем идем в меню “Файл” -> “Изменить атрибуты” и здесь уже выставляем галочки на нужные права.
Far
Сначала тоже заходим на сервер через FTP соединение, ищем нужную папку или файл, встаем курсором на этот объект и жмем Ctrl + A и тоже выставляем галочки где нужно.
Установка через скрипт PHP
Если под рукой нет этих файловых менеджеров, то можно это сделать используя встроенную функцию в php – chmod.
Её синтаксис такой: chmod (“полный путь к имени файла [или папки]”, режим [т.е права]); Возвращает TRUE в случае успешного завершения, FALSE в случае возникновения ошибки.
Например, чтобы установить права на папку /dir/somedir = 755, нужно создать php страничку вида:
<?
chmod ("/dir/somedir", 0755);
?>
Закинуть страничку на сервер и запустить.
Вот и все...
Здравствуйте!
У меня есть вопрос: нужно установить такие права для нескольких папок: -R 755.
что это значит, и как это сделать. Спасибо.
Что значит не знаю.. ниразу не было неоходимости, но знаю что это можно сделать почти через все FTP браузеры... В том числе и через Total Commander
Invision Power Board ()
© Invision Power Services ()