У многих новичков возникают проблемы и непонятки с CHMOD. В данной статье я попробую объяснить что это такое, для чего это нужно и как грамотно использовать chmod.
Для корректной работы скрипта либо в целях безопасности зачастую нужно назначить права доступа на определенные файлы, которые находятся на сервере. В буквальном смысле, это действие и есть chmod - change file mode - в переводе с английского изменение режима доступа к файлам.
Режим chmod обозначается чаще всего в числовом (например 744, 666) либо реже в символьном формате (например rwxrxrx). В случае символьного формата буквы r, w и x обозначают, соответственно, read (чтение), write (запись) и execute (выполнение). Выставлять права доступа (chmod) можно в любом FTP менеджере.
Вкладочка Change file attributes (Изменить аттрибуты) или Свойства (Properties):
Вообще существует три группы пользователей, права режима доступа к файлам нас будут интересовать: владелец файла (Owner), группа (Group) и все остальные пользователи (World Other). Когда вы создаете файл, то автоматически, как его владелец, получаете самые широкие права (разрешения) на операции с этим файлом, группа - несколько меньшие права, а все остальные и вовсе ограничиваются лишь правом на чтение файла.
Создавая файл, пользователь автоматически получает самые широкие права на делание с этим файлом чего угодно, его группа - несколько меньшие права, а все остальные - совсем ничтожные. В Unix (а сервера в основном работают на нем) есть только три основных права - читать файл или просматривать каталог («Read»), изменять файл или папку, записывая в неё что-нибудь, или вообще её удалять («Write»). Последнее право - право на запуск файла («Execute»).
Разберем права доступа.
Первыми идут галочки во всех полях владельца (Owner): read, write, execute (в символьном виде: rwx), то есть, владелец может читать, записывать и исполнять файл. Следующими идут поля группы (Group): read, execute (в символьном виде: rx), группа имеет права на чтение и исполнение файла, но не имеет разрешения на запись или удаление. В последней колонке идут "все остальные" (World, Other), имеющие такие же права как и группа: read, execute (в символьном виде: rx) - чтение, выполнение, не имеют права на удаление. В итоге мы получаем права rwxrxrx на этот файл. В числовом варианте: 755.
Каждое право имеет определенный числовой код и может быть выставленно вручную:
400 — владелец (Owner) имеет право на чтение; 200 — владелец (Owner) имеет право на запись или удаление; 100 — владелец (Owner) имеет право на выполнение;
40 — группа (Group) имеет право на чтение; 20 — группа (Group) имеет право на запись или удаление; 10 — группа (Group) имеет право на выполнение;
4 — все остальные (World, Other) имеют право на чтение; 2 — все остальные (World, Other) имеют право на запись или удаление; 1 — все остальные (World, Other) имеют право на выполнение.
В сумме эти пункты и дают необходимые chmod.
Для наглядности приведем несколько примеров. Например, нам требуется, чтобы владелец (Owner) мог делать все - чтение, запись, выполнение, группа (Group) могла читать и выполнять файл, все остальные (World, Other) — только читать файл.
Складываем:
400+200+100+40+10+4=754
Все имеют право только на чтение и выполнение: 400+100+40+10+4+1=555
Все могут читать файл, но писaть в него может только владелец файла: 400+200+40+4=644
Открывая файл, с выставленными правами 644, вы даже являясь владельцем, ничего не сможете в него записать, ибо браузер делает вас анонимным пользователем для сервера.
Все имеют право на запись (например, чтобы оставить комментарий в вашем блоге):
400+200+40+20+4+2=666
Для еще большей наглядности приведу таблицу расчета chmod (прав доступа, разрешений):
Значения Owner(Владелец) Group(Группа) Public(Остальные) Read = 4 Х X X Write = 2 X Execute = 1 X X X Сумма: (4+2+1)=7 (4+1)=5 (4+1)=5
CMOD файла в данном случае 755
  |