====== Настройка прав доступа к файлам ====== [[..:DokuWiki]] хранит данные о правах доступа в простых текстовых файлах, так что для этих файлов необходимо настроить права доступа. Если их настроить неправильно, это может стать угрозой безопасности. DokuWiki работает под управлением PHP, поэтому PHP должен иметь достаточно прав, чтобы перезаписывать эти файлы. Так как PHP обычно запускается под управлением веб-сервера, доступ к файлам на запись должен иметь веб-сервер. Как правило, DokuWiki хранит файлы, к которым нужен доступ на запись, в каталоге ''data''. Для работы [[..:installer|инсталлятора]], а также для последующей конфигурации, права на запись также должны быть установлены для каталога ''conf''. ===== Microsoft IIS (Internet Information Services) ===== {{http://img299.imageshack.us/img299/9718/translmerucr5.gif?80}}\\ Смотри [[install:iis|инструкцию по установке IIS]]. FIXME When installing Dokuwiki under Windows XP and the XAMPP-distribution of Apache (in a directory separate from root) I get error messages like "U:\Projekte\DokuWiki\dokuwiki-rc2007-05-24/data/attic is not writable by DokuWiki. You need to fix the permission settings of this directory!" when calling install.php. To fix this I only needed to create the directories mentioned by hand. ferdinand ===== Unix ===== Эта статья поможет вам разобраться с правами доступа, если вы устанавливаете DokuWiki на Linux, MacOS X или другую юниксоподобную систему. Арендуемый веб-сервер с большой вероятностью является юниксоподобным. ==== Ключевые моменты системы прав доступа ==== Статья не ставит себе цель подробно описать систему прав доступа UNIX'ов - информацию об этом можно найти, например, в [[wp>File_system_permissions|Википедии]]. Вот ключевые моменты: * Права доступа к файлу зависят от пользователя, который создал файл, и его группы, а также от того, кто пытается получить доступ. * Отдельно задаются права для чтения, записи и выполнения файла. * Каждый процесс в системе обладает правами доступа определённого пользователя. * Веб-сервер - это процесс, так что предыдущий пункт к нему применим. * PHP обычно выполняется как часть веб-сервера. * DokuWiki запускается с правами доступа PHP. * DokuWiki необходимы права на чтение, запись и выполнение для каталогов, в которых нужно создавать файлы. * DokuWiki необходимы права на чтение и запись для файлов, которые нужно перезаписывать во время работы. * DokuWiki необходимы права на чтение для файлов, которые перезаписывать не нужно. Чтобы узнать пользователя и группу, с правами которого выполняется PHP, можно выполнить следующий скрипт: ==== Какие выставлять права доступа? ==== Итак, какие же для упомянутых выше каталогов нужны права доступа? Общий совет состоит в том, чтобы они были как можно более ограниченными, но общего правила, какими они должны быть в вашей системе, не существует. Обладая правами root'а (суперпользователя), вы можете менять владельцев файлов и каталогов. Это значит, что вы можете сменить владельца файлов DokuWiki на пользователя, с правами которого запускается веб-сервер (например, ''web-server'', ''www-data'' или ''nobody'') и установить права доступа только для владельца. Например, ''0600'' для файлов и ''0700'' для каталогов. Если вы обычный пользователь, но состоите в группе веб-сервера, то вы можете сделать эту группу основной для файлов DokuWiki, и после этого установить для этой группы права на запись этих файлов. Например, ''0660'' для файлов и ''0770'' каталогов. Если вы абсолютно доверяете всем, кто имеет доступ к файловой системе сервера, вы можете дать доступ на запись всем пользователям. Например, ''0666'' для файлов и ''0777'' для каталогов. Если вы используете общий сервер, настоятельно рекомендуется связаться с администратором или тех-поддержкой и спросить совета. Отправьте им эту статью, и вам помогут принять правильное решение. Обратите внимание: когда вы выберете параметры прав доступа, не забудьте сменить настройки [[config:fmode]] и [[config:dmode]], чтобы новые файлы создавались с корректными параметрами. ==== Как менять права доступа? ==== Чтобы изменить права доступа, в командной строке сервера используйте [[man>chmod]]. Чтобы изменить владельца файлов и каталогов, используйте [[man>chown]]. Чтобы изменить основную группу файлов и каталогов, используйте [[man>chgrp]]. (Имейте в виду, что chown и chgrp могут быть запрещены или работать не так, как ожидается, если вы используете общий сервер.) Если вы используете FTP, обратитесь к документации своей программы для работы с FTP. Большинство FTP-клиентов, которые поддерживают графический интерфейс, имеют панель управления правами доступа (чаще всего в неё можно попасть из меню по клику на файле правой кнопкой мышки). ==== Мнение одного пользователя Dokuwiki ==== ** FIXME add simple explanation here** OK I'll fix this for you. :) I //should// preface this by stating that although I have not installed docuwiki yet. I //have// evaluated some 300+ CMS/Fourm/Wiki's, and have been administering some 50+ servers since 1975. That said; in an effort to help prevent individuals from compromising your system. You //**should not**// provide any more permissions/abilities than is absolutely necessary to your web space file system. What does this mean/require? Quite simply; only provide enough permissions on the directory/file space to enable your web application(s) to work. EXAMPLE: On a ""NIX"" system this is simply accomplished by setting Ownership/Read/Write permissions to the Directories/Files as so: cd /path/to/docuwiki chown -R www:www . DONE! :) see that was pretty easy, wasn't it? More details please. OK We just gave ownership of the docuwiki system to the Owner and Group the web server belongs to: User: www, Group: www This is the Owner/Group that many NIX based OS's run their web servers as (Apache). This Owner/Group can also be nobody/nobody, or apache/apache. You'll need to find this information out for yourself. Next we need to set what TYPE of permissions the web server has over the docuwiki file system. This can be of: Read, Write, Execute (4, 6, 7 respectively). The last bit (execute) is the one that you should **NEVER** provide unless **ABSOLUTELY** necessary. For directories, the "X" bit is almost always required //HOWEVER// the files that live in those directories **ALMOST NEVER** require the Executable bit (7) to be enabled. That said, let's move on. As a rule changing into a directory and setting the file permissions goes as follows: cd /complete/path/to/docuwiki chmod 0444 ./* DONE! :) We just gave ReadOnly permissions to All the files in the docuwiki folder. That was easy, wasn't it. You will need to determine **IN ADVANCE** what directories need which perms and which files need what perms. But to summarize: chown = Change Owner/Group chmod = Change/Modify permissions always lead off with a 0 (zero) when chmodding 4 = read 2 = write 1 = execute The other numbers have different meanings. But in most cases when setting up web space, those numbers will not be used/needed. What I've written here should get anyone **well** on their way to setting up/understanding how to set up a reasonably secure web space/site. Best wishes and safe admining. :) ==== Если что-то пошло не так ==== В определённых ситуациях Вы можете обнаружить, что не можете удалять или редактировать файлы, созданные DokuWiki. Посмотрите [[tips:fixperms.php]] для возможного решения проблемы. ===== Как запретить редактирование определённых страниц? ===== [[ru:faq:pageprotect|Ответ в разделе FAQ]]\\ Есть два способа: - Использовать [[ru:acl|списки контроля доступа]] (рекомендуется) - Запретить веб-серверу изменять определенный файл, например ((применимо только в *nix-системах, предполагается, что вебсервер не является владельцем файла))chmod 644 file.txt Убедитетесь, что вы понимаете? что такое [[ru:install:permissions|настройка прав доступа к файлам]] и их важность (см. статью [[ru:security|Безопасность]])