l

755 или права доступа к файлам и папкам

12.03.2009 66253 Пишу 15 комментариев компьютерная теория

Зачем я вообще взялся за эту статью? Частенько сталкиваюсь с ситуацией, когда начинающие кодеры веб-страниц задают примерно такой вопрос: «Я тут себе форум бесплатный скачал. Хочу его установить. А в настройках написано, что к отдельным файлам и целым папкам надо установить какие-то права доступа. Указывают цифры 777 или 755. А что это такое? Где и как устанавливаются эти права?».

Знакомая ситуация? Ходил-бродил я по форумам и понял, отвечать на эти вопросы через каждую неделю-две — скучно. Так и родилась эта статейка. Итак, приступим…

Но в самом начале скажу, не советую я вам пользоваться сторонними скриптами, которые требуют прав 777. Позже вы сами поймете почему.

Откуда же «ноги растут» у проблемы c правами доступа? Могу с полной ответственностью заявить: во всем виноват UNIX. Именно от его прав доступа к файлам и папкам всё и исходит. Немного теории. Все пользователи в юниксе располагаются по группам. Одни и те же пользователи могут членствовать сразу в нескольких группах. Права доступа им можно раздавать как для целых групп, так и индивидуально. Администраторы (входят в группу wheel), это — пользователи, которые могут присваивать те, или иные права доступа к файлам себе и остальным пользователям. Это просто и удобно. Предположим, есть группа пользователей, которым разрешено лишь читать документы из определенной папки и совсем нет никакого доступа в другие места системы.

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

Самое место поговорить о двоичных числах и двоичной системе счисления. Не волнуйтесь, я затрону эту тему лишь вскользь, ровно настолько, насколько это необходимо в данной статье. В двоичной арифметике всего два числа, которые можно записать одним символом, это — 0 и 1. А как же в такой системе записать число 2, 3 и т.д.? Да также, как и в привычной нам десятичной. Когда все числа от 0 до 9 исчерпаны, далее числа мы составляем из двух и более цифр. Так же мы поступим и здесь. Число 2 в двоичной системе счисления, это — 10. Я приведу соответствие десятичных чисел и двоичных для большей наглядности.

Здесь видно, когда не хватает 2 цифр, числа уже состоят из 3 цифр и т.д. Десятичное число 8, например, уже выглядело бы в двоичной системе как 1000. Честное слово, на этом о двоичных числах всё. Возвращаемся к нашей теме.

Помните, пару абзацев назад я писал о трёх категориях прав доступа к файлам? Это были чтение, запись и запуск. Если условиться, что разрешение в любой из этих категорий кодируется единицей (1), а запрет нулём (0), то несложно заметить, что закодировать разрешение читать файл и запрет записи и запуска можно тремя цифрами: 100. А разрешить всё тремя единичками: 111. Давайте вспомним приведенную выше таблицу соответствия двоичных чисел привычным нам десятичным. Первый пример, право только на чтение (100) можно, если принять записи из ноликов и единиц за двоичные числа, записать как четверку. Двоичное число 100 = 4 десятичному. Второй пример с тремя единицами, можно записать как десятичное 7.

Именно так и появляются цифры в тех самых правах доступа к файлам: семёрки и пятёрки, четвёрки и нолики. Но внимательный читатель заметит: «Секундочку, а почему же этих цифр три? Почему, говоря о правах, пишут 777 или 755?» И, конечно, будет прав. Дело здесь вот в чём. У каждого файла в юниксе есть хозяин. Это либо пользователь, создавший его, либо тот, кого администраторы указали в данном качестве. Скажем, администратор создает файл и назначает его хозяином рядового пользователя из какой-то группы. С этого момента данный пользователь сам может назначать права доступа к этому файлу другим пользователям системы. В этой связи, все пользователи делятся на три основных категории: хозяин файла, те кто входит с ним в одну группу, все остальные. Для каждой их этих категорий права доступа указываются отдельной цифрой. Вот их три и получается.

Приведем пример: У файла установлены права 755. Первая цифра — 7, это значит, что хозяин имеет на файл все права: чтение, запись и запуск (7 — 111). Вторая цифра — 5, пользователи из одной с хозяином группы имеют возможность читать и запускать файл, но не могут в него писать (5 — 101). Аналогично и все остальные — третья цифра тоже пятерка.

Часто пишут о правах доступа не в цифрах, а буквами. В этом случае права обозначают так: r (read — чтение), w (write — запись), x (execute — запуск). Если того или иного права нет, вместо буквы пишут знак минус. Используя такую форму записи, можно права доступа 755, например, обозначить так: rwxr-xr-x. Такая запись многим покажется более наглядной. Что ж, может и так.

В юниксподобных ОС для задания прав доступа к файлам служит команда chmod. О том как ей пользоваться я здесь писать не стану (это выходит за тему данной статьи). Напомню лишь о том, что сайты многих из вас, возможно распологаются именно на таких серверах. Узнать это можно, например связавшись с вашим хостером (компанией, предоставившей вам хостинг). Если окажется, что сайт у вас расположен на сервере под управлением Windows, вам также придется задавать вашим файлам и папкам права доступа, хотя раньше на таких веб-серверах всё сводилось к ситуации, когда всё разрешено — 777.

Кто-то, возможно посетует, что я не написал здесь о том как выставить всё же права доступа к файлам? Что ж, могу сказать одно, файлы на сервер можно выложить несколькими способами, точнее используя разные протоколы. Популярными являются ftp и ssh. Второй часто называют шелом. Если ваш хостер позволяет им пользоваться, вы сможете в этом случае воспользоваться юниксовой командой chmod для указания прав доступа к вашим файлам. Если же вы выкладываете файлы по ftp-протоколу, то, скорее всего, для этой цели используете какую-нибудь программу. В ней наверняка есть возможность выставить права доступа к файлам, которые вы закачали на сайт. Причем разные программы используют для этого обе формы записи и буквенную и цифровую. Вам остается лишь узнать как именно выставляются эти пресловутые права вашей любимой программой. А я попытался объяснить что означают цифры и буквы в этих записях. Дерзайте.

15 комментариев на «755 или права доступа к файлам и папкам»

  1. Гость:

    Ище права можно установить, открыв ftp папку в проводнике виндовса (в ослике есть такая возможность), кликнуть по файлу/папке правой кнопкой, выбрать свойства и там поставить необходимые галочки :D

    • Фото аватара Володька Смирнов:

      Разумеется можно. Я не писал в этой статейке как устанавливать права доступа к файлам в unix-системах при помощи тех или иных ftp-клиентов. В конце концов, юниксовую команду chmod ещё никто не отменял. Я лишь объяснил, как мне кажется, доходчиво, что именно значат цифры в правах доступа к файлам и папкам. Именно поэтому данная статья и находится в рубрике «Компьютерная теория». Приятно, что кто-то это читает. :)

  2. Гость:

    Спасибо,очень сильно помогло!!!

  3. Гость:

    Да, спасибо,
    новички тоже люди. хорошо, что среди профи есть те, кто не только посылает к книгам, но и сам отвечает на вопрос.

  4. Гость:

    да, действительно доходчиво. спасибо за статью.

  5. Гость:

    спасибоооооооооо

  6. Гость:

    Оч. благодарен

  7. Гость:

    Спасибо просто и понятно

  8. Гость:

    спосибо большое. Доходчиво, понятно, наглядно

  9. Гость:

    Пребольшущее!!!!!!!!!
    Да прибудет с вами пингвин!)))

  10. Гость:

    большое огромное спасибо! кратко доступно!

  11. Гость:

    спасибо

  12. Гость:

    вы бы написали как на файле присвоить права 775

    • Фото аватара Володька Смирнов:

      Большая часть ответа — в вопросе. Если предположить, что вы о файлах, находящихся на каком-то ftp-сервере, и сервер этот на unix-платформе, и к нему у вас есть доступ по ssh- протоколу (видите сколько требуется уточнений?), то вы можете воспользоваться юниксовой командой chmod. Если же про платформу ничего не известно, если ssh доступа к ней нет, то всегда поможет программа ftp-клиент. Лично я использую клиент FileZilla. Конкретно в ней права на файлы (и папки тоже) выставляются так: кликнуть один раз по файлу (или папке) правой кнопкой мыши и из контекстного меню выбрать «Права доступа к файлу…». Затем отдельно выставить или убрать галочками права на чтение, запись и выполнение, для владельца, для его группы, и для всех остальных. Если вы используете другой ftp-клиент, нужно смотреть как именно он меняет права доступа к файлам и папкам, расположенным на сервере.

  13. Vera:

    Большое спасибо за статью! Очень понятно все объяснили! )

Оставьте ваш отзыв: