Изменение режима доступа к файлам (chmod).
У многих новичков, устанавливающих скрипт сиджа или топа, возникают проблемы и непонятки с CHMOD. В данной статье я попробую объяснить что это такое, для чего это нужно и как грамотно использовать chmod.
Для корректной работы скрипта либо в целях безопасности зачастую нужно назначить права доступа на определенные файлы, которые находятся на сервере. В буквальном смысле, это действие и есть chmod - change file mode - в переводе с английского изменение режима доступа к файлам
Режим chmod обозначается чаще всего в числовом (например 744, 666) либо реже в символьном формате (например rwxrxrx). В случае символьного формата буквы r, w и x обозначают, соответственно, read (чтение), write (запись) и execute (выполнение). Выставлять права доступа (chmod) можно в любом FTP менеджере. Я пользуюсь Windows Comander, в нем окошко установки chmod выглядит вот так:
верхнее меню Files-->вкладочка Change file attributes (Изменить аттрибуты):
Вообще существует три группы пользователей, права режима доступа к файлам нас будут интересовать: владелец файла (на рисунке выше первая колнка 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
Все могут читать файл, но писАть в него может только владелец файла: 400+200+40+4=644
Открывая файл, с выставленными правами 644, вы даже являясь владельцем, ничего не сможете в него записать, ибо браузер делает вас анонимным пользователем для сервера.
Все имеют право на запись (например, чтобы оставить комментарий в вашем блоге): 400+200+40+20+4+2=666
Для еще большей наглядности приведу таблицу расчета chmod (прав доступа, разрешений):
|
Партнеры
|