====== Установка прав доступа к файлам и папкам (CHMOD). ======
Важными составляющими каждого форума являются -- администрирование и безопасность. Именно к этим двум разделам можно отнести систему изменения атрибутов доступа к определённым файлам и папкам форума, **CHMOD** (**ch**ange file **mod**e - в переводе: "изменение режима доступа к файлам").
===== CHMOD. Общие понятия. =====
Права доступа - это атрибуты файла или папки, которые указывают серверу, кто и что может делать с соответствующим файлом или папкой. Большинство серверов работает на базе Unix-систем, поэтому рассмотрим установку прав доступа именно для них.
В системах Unix все пользователи разделяются на три группы: "**owner**" (владелец файла), "**group**" (член той же группы, к которой принадлежит владелец файла) и "**public**" (все остальные). Когда вы соединяетесь с сервером, он определяет, к какой группе вы относитесь. Например, подключаясь к серверу по FTP, вы входите под своим именем пользователя, соответственно сервер относит вас к группе "**owner**". Другие пользователи, подключаясь по FTP, будут отнесены к группе "**group**", а когда человек попадает к вам на сайт через свой браузер, то попадает в группу "**public**".
После определения группы, пользователь получает права на действия с объектами. В Unix есть только три основных права действия над файлом - читать файл или просматривать каталог (**R**ead); изменять файл или папку, записывать в неё или удалять (**W**rite); запускать файл (e**X**ecute). Исходя из этого, в оборот были введены символы **r**, **w** и **x**, означающие, соответственно, **read**, **write** и **execute**. Чтобы распределить права для групп (owner, group, public), используются цифровые обозначения:
**4** = read (право на чтение) \\
**2** = write (право на запись) \\
**1** = execute (право на выполнение)\\
Первая цифра в обозначении устанавливает права для группы "**owner**", вторая для группы "**group**" и третья для "**public**". Простым сложением цифр можно добиться установления прав на совокупность действий. Например, **3** (2+1) разрешает запись и выполнение файла (каталога); **5** (4+1) разрешает чтение и выполнение; **6** (4+2) разрешает чтение и запись; **7** (4+2+1) устанавливает право чтения, записи и выполнения. Т.е. всего семь возможных вариантов:
**7** = read, write & execute \\
**6** = read & write \\
**5** = read & execute \\
**4** = read \\
**3** = write & execute \\
**2** = write \\
**1** = execute
===== CHMOD. Установка атрибутов. =====
Для установки прав доступа используется команда **CHMOD**. Во всех современных FTP-клиентах присутствует возможность назначения прав доступа путем простановки "галочек" в чекбоксах, либо просто введением цифрового кода в соответствующее поле:
{{:faq:chmod_basic.gif|:faq:chmod_basic.gif}}
Подобное сочетание CHMOD можно расчетать в виде таблицы:
^ Значения ^ Owner (Владелец) ^ Group (Группа) ^ Public (Остальные) ^
| Read = 4 | X | X | X |
| Write = 2 | X | | |
| Execute = 1 | X | X | X |
| Сумма: | (4 + 2 + 1) = **7** | (4 + 1) = **5** | (4 + 1) = **5** |
===== CHMOD. Пример команды. =====
Рассмотрим пример задания команды CHMOD через FTP-клиент [[http://www.cuteftp.com/downloads/index.asp|CuteFTP]] для выставления необходимых атрибутов папки /uploads/ форума IPB. Для этого нужно подключиться к серверу, найти корневой каталог с форумом, найти папку /uploads/, нажать правой кнопкой мыши на ней и в появившемся меню выбрать "Properties / CHMOD".
{{:faq:ftp_chmod.gif|:faq:ftp_chmod.gif}}
Для задания команд вы можете использовать другие программы, позволяющие работать как FTP-клиенты (суть их работы одинакова). Например:
* В **Windows Commander** они изменяются через пункты меню «Файл» -> «Изменить атрибуты». При этом изменяются разрешения на выделенный файл (файлы) и/или папки.
* В **FAR Manager** разрешения выделенных файлов изменяются нажатием Ctrl+A:\\
[x][x][ ] [x][x][ ] [x][x][ ] - 666 \\
[x][x][x] [x][ ][x] [x][ ][x] - 755 \\
===== CHMOD на файлы и папки IPB. =====
В заключение приведём пример расстановки атрибутов на файлы и папки форума IPB. Следующие папки и файлы должны иметь атрибуты доступа 777.
**Для версии 2.1:**
/cache/ \\
/cache/lang_cache/ \\
/cache/skin_cache/ + на все папки и файлы внутри неё \\
/style_emotions/ + на папки наборов смайликов внутри неё \\
/style_images/ \\
/uploads/ \\
На файл conf_global.php рекомендуется выставить CHMOD 666.
**Для версии 2.2 и 2.3:**
/cache/ \\
/cache/lang_cache/ + на все папки и файлы внутри неё \\
/cache/skin_cache/ + на все папки и файлы внутри неё \\
/uploads/ \\
/style_images/ + на все папки и файлы внутри неё \\
install/installfiles/ \\
На файл conf_global.php перед установкой выставить права 666, после установке рекомендуется вернуть к стандартным 644.
**Для версии 3.0:**
./cache \\
./cache/tmp \\
./cache/lang_cache \\
./cache/lang_cache/1 \\
./cache/skin_cache \\
./public/style_images \\
./public/style_css \\
./hooks \\
./uploads \\
На файл conf_global.php перед установкой выставить права 666, после установке рекомендуется вернуть к стандартным 644.
Успехов!