|
Реклама
|
Права доступаСб, 22 Март 2008 Права доступа к файлам - основа основ. Это выражение совсем непонятно для Вас, если Вы работали только под Windows. Какие ещё права, спросите Вы? И, далее скачав скрипты, которые представлены на этом сайте и, увидев, что от Вас постоянно требуют поставить на файлы права доступа 0775 или 0777, Вы будете находиться в замешательстве. Попробуем объяснить, что же такое ПРАВА ДОСТУПА. Работая под Windows, Вы уже давно научились пользоваться антивирусными программами, уже давно смирились с тем, что последние определяют далеко не все вирусы, частенько Ваш компьютер приходилось “чистить”, а некоторым из Вас, вообще, приходилось перезаписывать Windows. У Вас никогда не возникало вопроса отчего это всё происходит, потому что у всех Ваших знакомых тоже всё-время появляются вирусы, то есть у всех всё одинаково и по другому не бывает. Тут-то мы и подходим к тем самым “правам доступа”. Права бывают: Так вот, в системах Windows многим файлам, обычно к которым Вы обращались, сразу же даны все эти права, вот почему у Вас никогда не возникало вопроса, а какие бывают “права доступа”. Теперь становится понятно, почему с такой легкостью любой вирус спокойно записывает себя на Ваш компьютер, а потом запускает сам себя и исполняется - ему это никто не запрещал. В этом и есть самая большая дыра Windows. Вы скажете, а что бывает по другому? Конечно бывает… Это системы, которые базируются на платформе Unix. Что же отличает Unix от Windows? А тем, что права доступа в системах Unix раздаёт главный администратор компьютера, который владеет основным паролем, и он, и только он, может поставить, например, право в данный файл что-то записывать. А так, все остальные файлы можно только читать. После этого становится понятно, что на компьютере, где в основном размещены файлы с пометкой ‘только для чтения’, вирусам делать нечего, они не могут туда себя ни записать, ни исполниться. Права доступа к файлам и каталогам - основные элементы защиты системы. Сами права доступа разделяются на три категории: Права доступа указываются с помощью команды chmod(). Комбинация r, w и x для трех категорий u, g и o и являются правами доступа к файлам. Если нет какой-то категории права, она указывается знаком дефис. Права доступа указываются последовательно: В следующем примере, владелец файла имеет право на чтение файла, запись в него и исполнение, а все остальные только на чтение: rwxr–r– Чтобы файл выполнить, если он является сценарием, достаточно иметь права на чтение и исполнение, а в случае двоичных файлов, только на исполнение. Здесь показаны различные комбинации прав доступа к файлам и каталогам Права доступа обозначаются так же цифрами: То есть, давайте поманипулируем этими цифрами… исполнять исполнять читать исполнять Теперь перейдем к самому главному - для чего же надо менять права доступа? Вы завели себе хостинг, сделали сайт и потом всё это дело переписали в ту папку, которую Вам под это дело выделили. Вы использовали логин и пароль, который заранее обговорили со своим администратором хоста. После этого, Вы являетесь владельцем всех папок и файлов, находящихся в той зоне, где действуют Ваши логин и пароль на сервере, у Вас, как у собственника, права доступа - rwx или в цифровом представлении - 7. Владельцем Вы станете только тогда, когда система попросит от Вас логин и пароль и Вы авторизируетесь в ней. Только после этого, для Вас будут те полные права, о которых мы говорили. Группу, связанную с Вашими папками и файлами определяет суперпользователь, то есть админ Вашего хостинга, например user, в целях безопасности сервера он, обычно ставит права для этой группы r– или в цифровом представлении - 4. Группа - это те пользователи, которые уже зарегистрированы в системе, и суперпользователь может их связать с Вашим сайтом. Всем остальным пользователям, то есть тем, которые и будут, в итоге, пользоваться Вашим сайтом, то есть всем тем, которые и будут заходить на сайт через интернет, суперпользователь сразу ставит права только на чтение - r– или в цифровом представлении - 4. Отметим, что Вы для системы так же будете являться обычным пользователем интернет, так как Вы при использовании Вашего сайта в пределах Вашего броузера не сможете авторизироваться как Владелец ресурса. Далее, для простоты, первые два отсека в правах доступа мы обозначим 0, то есть будем смотреть только на последнюю цифру доступа, так как она обозначает доступ пользователей интернет. То есть, будем ставить 005, 007, итд. Ещё раз, что означает ‘пользователи могут читать файлы’ - это значит, запускается Ваш скрипт на сайте, который читает файл, система понимает, что скрипт запустил юзер и к нему просматривается последняя цифра доступа к данному файлу, если она 4, 5, 6 или 7 (004, 005, 006, 007) ваш скрипт может прочитать файл и выдать результат в Вашу программу, запущенную юзером, и, в итоге вернуться к нему в виде распечатки. Кроме этого, система просматривает и права доступа к каталогу, где лежит файл. Они должны быть: 5 или 7 (005, 007), чтобы программа могла зайти в каталог и прочитать его. То есть, необязательно ставить права доступа к папке, где лежит простой неизменяемый в размерах файл 007, и права доступа к самому этому файлу 005, 006, 007. Хватит поставить на папку 005, а на файл 004. Если права будут ниже этих цифр, процесс, запущенный пользователем ничего не прочитает из вашего файла. Что означает ‘пользователи могут изменять файлы’ - это значит, запускается Ваш скрипт на сайте, который читает файл, а потом пытается его изменить (например, добавляет в файл статистики Ip адрес этого пользователя), система понимает, что скрипт запустил юзер и к нему просматривается последняя цифра доступа к данному файлу, если она 6 или 7 (006, 007) ваш скрипт может прочитать, а потом и изменить файл, к которому было обращение и выдать результат в Вашу программу, запущенную юзером, и, в итоге вернуться к нему в виде распечатки. То есть, здесь не хватит прав доступа 002 (-w-), так как перед изменением файла, его обязательно надо сначала прочитать. Кроме этого, система просматривает и права доступа к каталогу, где лежит файл. Они должны быть: 5 или 7 (005, 007), чтобы программа могла зайти в каталог и прочитать его. То есть, необязательно ставить права доступа к каталогу, где лежит изменяемый в размере файл 007 и права доступа к самому этому файлу 007, можно поставить на папку 005, а на файл 006. Если права будут ниже этих цифр, процесс, запущенный пользователем ничего не запишет в ваш файл. Что означает ‘пользователи могут изменять каталог’ - это значит, запускается Ваш скрипт на сайте, который пытается записать файл в каталог или стереть его оттуда, система понимает, что скрипт запустил юзер и к нему просматривается последняя цифра доступа к каталогу, она должна быть 7 (007), только тогда ваш скрипт, запущенный юзером, может записать в данный каталог файл или стереть его оттуда. Если права к такому каталогу будут 006 (чтение и запись), прав не хватит, так как скрипт не сможет зайти в каталог, если будет 005 (чтение и заход в каталог), значит запись запрещена. То есть, на такие каталоги надо ставить права 007. Итак, обычно на сервере куда Вы переписали Ваши файлы стоят такие права доступа: Все Ваши файлы и папки унаследуют именно такой порядок доступа. Как видите, на сайте с обычным html текстом, где нет файлов, которые надо менять, таких прав доступа вполне хватит. Но мы с Вами обсуждаем сайт, где есть базы данных, которые постоянно надо менять. Вспомним, что Вы сами будете заходить на Ваш сайт как анонимный пользователь, то есть не как Владелец. И, наконец, мы спокойно можем забыть про права доступа группы, так как группы пользователей у Вас не будет. То есть, Ваш сайт будет спокойно работать, если Вы поставите на всё права доступа: 007 (——rwx) К примеру, в наших скриптах Вы найдете папку lock, которая пуста, но она такая и должна быть - она служит для разделения процессов записи и чтения, в неё все время записываются и стираются временные файлы, поэтому на неё нельзя ставить права 755, а надо поставить права не ниже 777. Заметим, что это только на те папки, куда должны записываться новые и стираться старые файлы. На папки с базами данных ставьте права не выше 755, чтобы пользователи не могли менять содержимое папок, то есть количество записанных там файлов (хотя, поменять они ничего не смогут, так как, могут менять, только Вашим скриптом). На все файлы, которые не будут меняться права не выше 744 (файлы .html, .php, идр.). На файлы с базами данных (.dat) ставьте 766. Обратите внимание, что на файлы мы вообще не ставим самые большие права 777, так как это необязательно… Ну вот, кажется теперь Вы стали немного понимать, что такое права доступа и какие они должны быть. Но встает вопрос, как же их изменить? Суперпользователь root меняет их на сервере с помощью команды chmod, из командной строки: $ chmod 777 filename После этого, на файл filename распространятся самые большие права доступа, но Вы не имеете доступа к серверу, просить системного администратора изменить Вам права доступа на Ваши файлы не принято, а средствами Php, увы, права изменить нельзя, потому что система увидит, что Вы владелец ресурса, только после авторизации, то есть проверки пароля в базе данных Linux. Обычными средствами, через php сделать это трудно, поэтому Вы будете заходить на сайт броузером как обычный юзер: То есть, этот скрипт не работает, потому что юзеру, которым Вы будете считаться запрещено менять права функцией chmod. Что же делать? Кроме того, что Вы можете зайти на сайт как анонимный пользователь через броузер, еще предусмотрен один путь - через FTP. Ftp - это еще один своего рода сервер, который работает независимо от сервера Apache. Если Вы как-то записали ваш сайт на сервер, то Вы точно пользовались каким-то файловым менеджером. В этом смысле, лучше чем Far, на наш взгляд, файлового менеджера не найти. Зайдите им по ftp на ваш сайт (в этом случае запрашивается ваши логин и пароль, то есть Вы будете авторизованы в системе и станете Владельцем), найдите в Far раздел “атрибуты файлов” Ctrl+A, Вы увидите уже не пугающую вас картинку: [x] [x] [-] [x] [-] [-] [x] [-] [-] для файлов, по умолчанию 644 Это и есть те самые три группы: первые три отсека - Владелец, вторые три отсека - Группа, третьи три отсека - Все остальные. В этих группах по порядку идут: доступ на чтение, на запись, на исполнение, где крест обозначает, что эта опция для данной группы задействована. То есть, меняйте права доступа по ftp через файловый менеджер, другого пути у Вас может не быть. Права доступа через ftp и менджер Far должны будут выглядеть так: Мы с Вами рассмотрели какие на самом деле должны быть права доступа и как они должны работать. Если, всё же Ваши скрипты не работают, то есть сам сервер сконфигурирован как-то по-хитрому, то повышайте права доступа. Чтобы вообще не задумываться об этом, можете на всё установить самые большие права 777.
|
Новости
|