• 29 January 2019 - 18:02 (Thornography) Ответов: 0
    Заходит кто-нибудь ещё?
 • 4 October 2018 - 23:19 (jenifer) Ответов: 0
    Toyota Mercedes BMW Lexys 2018 года
 • 30 September 2018 - 20:28 (jenifer) Ответов: 0
    Toyota Mercedes BMW Lexys 2018 года
 • 16 April 2018 - 15:19 (jenifer) Ответов: 0
    Toyota Mercedes 2018 года
 • 12 April 2018 - 17:46 (jenifer) Ответов: 0
    Toyota Mercedes 2018 года
 • 13 March 2018 - 17:03 (jenifer) Ответов: 0
    Замена колодок BMW
 • 13 January 2018 - 09:43 (jenifer) Ответов: 0
    Ремонт автомобилей BMW
 • 1 April 2016 - 18:06 (INSIDIOFER) Ответов: 13
    бесплатный хост от народ рю

14.08.09

Права доступа к файлам

Права доступа к файлам - это основа основ. Это выражение совсем непонятно для Вас, если Вы работали только под Windows. Какие ещё права, спросите Вы? И, далее скачав скрипты, которые представлены на этом сайте и, увидев, что от Вас постоянно требуют поставить на файлы права доступа 755 или 777, Вы будете находиться в замешательстве. Попробуем объяснить, что же такое ПРАВА ДОСТУПА

Работая под Windows, Вы уже давно научились пользоваться антивирусными программами, уже давно смирились с тем, что последние определяют далеко не все вирусы, частенько Ваш компьютер приходилось "чистить", а некоторым из Вас, вообще, приходилось перезаписывать Windows. У Вас никогда не возникало вопроса отчего это всё происходит? Наверное, не возникало, потому что у всех Ваших знакомых тоже всё-время появляются вирусы, то есть у всех всё одинаково и по другому не бывает.

Тут-то мы и подходим к тем самым "правам доступа". Права бывают:

На чтение файлов: любой процесс имеет право прочитать из файла информацию.
На запись в файлы: любой процесс имеет право записать что-то в файл.
На исполнение файлов: любой процесс может запустить исполняемый файл.
На изменение каталога: любой процесс может стереть, записать файл в каталоге.

Так вот, в системах Windows многим файлам, обычно к которым Вы обращались, сразу же даны все эти права, вот почему у Вас никогда не возникало вопроса, а какие бывают "права доступа". Теперь становится понятно, почему с такой легкостью любой вирус спокойно записывает себя на Ваш компьютер, а потом запускает сам себя и исполняется - ему это никто не запрещал. В этом и есть самая большая дыра Windows. Вы скажете, а что бывает по другому? Конечно бывает... Это системы, которые базируются на платформе Unix.

Что же отличает Unix от Windows? А тем, что права доступа в системах Unix раздаёт главный администратор компьютера, который владеет основным паролем, и он, и только он, может поставить, например, право в данный файл что-то записывать. А так, все остальные файлы можно только читать. После этого становится понятно, что на компьютере, где в основном размещены файлы и папки с пометкой только для чтения , вирусам делать нечего, они не могут туда себя ни записать, ни исполниться.

Права доступа к файлам и каталогам - основные элементы защиты системы. Сами права доступа разделяются на три категории:
права владельца файла - u
права группы - g
права всех остальных пользователей - o

Права доступа указываются с помощью команды chmod().
r - право на чтение
w - право на запись
x - право на исполнение

Комбинация r, w и x для трех категорий u, g и o и являются правами доступа к файлам. Если нет какой-то категории права, она указывается знаком дефис. Права доступа указываются последовательно:
владелец u, группа - g, все остальные o.

В следующем примере, владелец файла имеет право на чтение файла, запись в него и исполнение, а все остальные только на чтение: rwxr--r--
То есть: rwx(права владельца u), r-- (права группы g), r--(права всех остальных o).

Чтобы файл выполнить, если он является сценарием, достаточно иметь права на чтение и исполнение, а в случае двоичных файлов, только на исполнение.


Отличие прав доступа к файлам и каталогам
ПраваФайлКаталог
rПросмотр содержимогоМожно прочитать содержимое каталога
wИзменение содержимогоМожно записать-стереть файл в каталоге
xЗапуск файла на выполнениеПозволяет зайти в каталог и обратиться к его файлам

Здесь показаны различные комбинации прав доступа к файлам и каталогам
ПраваФайлКаталог
---Ничего нельзя делатьДоступ к каталогу и его подкаталогам запрещен
r--Можно читать содержимоеМожно прочитать содержимое каталога
rw-Можно видеть и изменять содержимоеМожно добавить, удалить, изменить файл каталога
rwxЧитать, изменять и выполнять файлМожно читать, удалять, изменять файлы, сделать каталог текущим.
r-xМожно прочитать, либо выполнитьМожно зайти в каталог и прочитать его содержимое, удалять или добавлять файлы нельзя.
-wxНельзя читать файл, но можно исполнить и что-то записатьМожно добавить, удалить, изменить файл каталога. Прочитать содержимое каталога невозможно.
--xВыполнить, если файл двоичныйПользователь может выполнить двоичный файл о существовании которого ему известно, зайти или прочитать каталог запрещено

Права доступа обозначаются так же цифрами:
4 - читать (r),
2 - записывать (w),
1 - исполнять (x).
0 - ничего нельзя делать.
Сумма этих цифр и показывает права доступа. 7 = 4 + 2 +1 (полные права), 5 = 4 + 1 (чтение и выполнение), 6 = 4 + 2 (чтение и запись), итд.


Здесь показаны различные комбинации прав доступа в цифрах
ПраваЦифровая формаСимвольная форма
Ничего нельзя делать0---
Запись и исполнение3-wx
Только чтение4r--
Только запись2-w-
Только выполнение1--x
Чтение и запись6rw-
Чтение и выполнение5r-x
Чтение, запись, выполнение7rwx

То есть, давайте поманипулируем этими цифрами...

Комбинации прав доступа в цифрах по группам
ПраваВладелецГруппаОстальные
777читать
записывать
исполнять
читать
записывать
исполнять
читать
записывать
исполнять
776читать
записывать
исполнять
читать
записывать
исполнять
читать
записывать
775читать
записывать
исполнять
читать
записывать
исполнять
читать

исполнять
774читать
записывать
исполнять
читать
записывать
исполнять
читать
766читать
записывать
исполнять
читать
записывать
читать
записывать
655читать
записывать
читать

исполнять
читать

исполнять
644читать
записывать
читатьчитать
633читать
записывать

записывать
исполнять

записывать
исполнять
611читать
записывать
исполнятьисполнять

Теперь перейдем к самому главному - для чего же надо менять права доступа? Вы завели себе хостинг, сделали сайт и потом всё это дело переписали в ту папку, которую Вам под это дело выделили. Вы использовали логин и пароль, который заранее обговорили со своим администратором хоста.

После этого, Вы являетесь владельцем всех папок и файлов, находящихся в той зоне, где действуют Ваши логин и пароль на сервере. У Вас, как у собственника, права доступа - rwx или в цифровом представлении - 7. Владельцем Вы станете только тогда, когда система попросит от Вас логин и пароль, и Вы авторизируйтесь в ней. Только после этого, для Вас будут те полные права, о которых мы говорили.

Группу, связанную с Вашими папками и файлами определяет суперпользователь, то есть админ Вашего хостинга, например user, в целях безопасности сервера он, обычно ставит права для этой группы r-x или в цифровом представлении - 5. Группа - это те пользователи, которые уже зарегистрированы в системе, и суперпользователь может их связать с Вашим сайтом.

Всем остальным пользователям, то есть тем, которые и будут, в итоге, пользоваться Вашим сайтом, то есть всем тем, которые будут заходить на сайт через боузер, суперпользователь сразу ставит права доступа только на чтение - r--, или в цифровом представлении - 4. Отметим, что Вы для системы так же будете являться обычным пользователем интернет, так как Вы при использовании Вашего сайта в пределах Вашего броузера, не сможете авторизироваться как Владелец ресурса.

Далее, для простоты, первые два отсека в правах доступа мы обозначим 0, то есть будем смотреть только на последнюю цифру доступа, так как она обозначает доступ обычных пользователей интернет. То есть, будем ставить 005, 007, итд.

Ещё раз, что означает пользователи могут читать файлы - это значит, запускается Ваш скрипт на сайте, который читает файл, система понимает, что скрипт запустил юзер и к нему просматривается последняя цифра доступа к данному файлу. Если она 4, 5, 6 или 7 (004, 005, 006, 007), ваш скрипт может прочитать файл и выдать результат в Вашу программу, запущенную юзером, и, в итоге вернуться к нему в виде распечатки. Кроме этого, система просматривает и права доступа к каталогу, где лежит файл. Они должны быть: 1, 5 или 7 (001, 005, 007), чтобы программа могла зайти в каталог и прочитать известный ей файл. То есть, необязательно ставить права доступа к папке, где лежит простой неизменяемый в размерах файл 007, и права доступа к самому этому файлу 005, 006, 007. Хватит поставить на папку 001, а на файл 004. Если права будут ниже этих цифр, процесс, запущенный пользователем ничего не прочитает из вашего файла. Кроме этого, если на папку Вы поставите права (005, 007), все юзеры интернета смогут прочитать содержимое такого каталога, что не совсем правильно.

Что означает пользователи могут изменять файлы - это значит, запускается Ваш скрипт на сайте, который читает файл, а потом пытается его изменить (например, добавляет в файл статистики Ip адрес этого пользователя), система понимает, что скрипт запустил юзер и к нему просматривается последняя цифра доступа к данному файлу. Если она 6 или 7 (006, 007), ваш скрипт может прочитать, а потом и изменить файл, к которому было обращение и выдать результат в Вашу программу, запущенную юзером, и, в итоге вернуться к нему в виде распечатки. То есть, здесь не хватит прав доступа 002 (-w-), только запись, так как перед изменением файла, его обязательно надо сначала прочитать. Кроме этого, система просматривает и права доступа к каталогу, где лежит файл. Они должны быть: 1, 5 или 7 (001, 005, 007), чтобы программа могла зайти в каталог и прочитать известный ей файл. То есть, необязательно ставить права доступа к каталогу, где лежит изменяемый в размере файл 007 и права доступа к самому этому файлу 007, можно поставить на папку 001, а на файл 006. Если права будут ниже этих цифр, процесс, запущенный пользователем ничего не запишет в ваш файл. ничего не прочитает из вашего файла. Кроме этого, если на папку Вы поставите права (005, 007), все юзеры интернета смогут прочитать содержимое такого каталога, что не совсем правильно.

Что означает пользователи могут изменять каталог - это значит, запускается Ваш скрипт на сайте, который пытается записать файл в каталог или стереть его оттуда, система понимает, что скрипт запустил юзер и к нему просматривается последняя цифра доступа к каталогу, она должна быть 3 или 7 (003, 007), только тогда ваш скрипт, запущенный юзером, может записать в данный каталог файл или стереть его оттуда. Если права к такому каталогу будут 006 (чтение и запись), прав не хватит, так как скрипт не сможет зайти в каталог, если будет 005 (чтение и заход в каталог), значит запись запрещена. То есть, на такие каталоги лучше ставить права 003. Если Вы поставите права 007, все юзеры интернета смогут прочитать содержимое такого каталога, что не совсем правильно.

Итак, обычно на сервере, куда Вы переписали Ваши файлы, стоят такие права доступа:

Папки 755 владелец может всё, группа и все остальные могут читать папки и заходить в них, записывать файлы, изменять названия файлов, стирать файлы в папках им запрещено. (rwxr-xr-x)
Файлы644владелец может читать и изменять файлы, исполнять ему их запрещено, все остальные могут только файлы читать, изменять и исполнять им запрещено. (rw-r--r--)

Все Ваши файлы и папки унаследуют именно такой порядок доступа. Как видите, на сайте с обычным html текстом, где нет файлов, которые надо менять, таких прав доступа вполне хватит.

Но мы с Вами обсуждаем сайт, где есть базы данных, которые постоянно надо менять. Вспомним, что Вы сами будете заходить на Ваш сайт как анонимный пользователь, то есть не как Владелец. И, наконец, мы спокойно можем забыть про права доступа группы, так как группы пользователей у Вас не будет. То есть, Ваш сайт будет спокойно работать, если Вы поставите на всё права доступа: 007 (------rwx)

Но мы не будем так делать, а сделаем так:
Папки, все (в том числе, с базами данных)711
Папки, куда должны записываться, стираться файлы733
Простые файлы для чтения (.html, .php)744
Файлы с базами данных (.dat)766


К примеру, в наших скриптах Вы найдете папку lock, которая пуста, но она такая и должна быть - она служит для разделения процессов записи и чтения, в неё все время записываются и стираются временные файлы, поэтому на неё нельзя ставить права 755, а надо поставить права 733.

Заметим, что это только на те папки, куда должны записываться новые и стираться старые файлы. На все другие папки ставьте права не выше 755, чтобы пользователи не могли менять содержимое папок, то есть количество записанных там файлов. Обратите внимание, что мы рекомендуем на такие папки не ставить права, не то что - 755, а и - 744, лучше поставить 711. Если на всех Ваших папках стоят такие права, то все ваши скрипты будут спокойно заходить во все папки и читать от туда файлы и преспокойно работать. А юзеры интернет не смогут броузером прочитать содержимое таких папок, если, конечно они не знают название файлов. Если название файла юзеру будет известно, то он сможет в броузере набрать папку/название_файла и получить его распечатку. Как создать папки, где информацию нельзя считать вообще, описано в другой статье здесь... На это есть специальные файлы .htaccess, но их использование сильно тормозит сервер, поэтому лучше их использовать на тех папках, где лежат пароли или настройки сайта. На все остальные папки поставьте права доступа 711 - этого вполне хватит. Кроме этого, на те папки куда будут записываться - стираться файла, ставьте права 733, не надо ставить 777 - нет смысла, так как, если стоят права 733 - значит пользователь не сможет отдельно от ваших скриптов читать содержимое каталогов.

На все файлы, которые не будут меняться права не выше 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
[x][x][x][x][-][x][x][-][x]для папок, по умолчанию 755

Это и есть те самые три группы: первые три отсека - Владелец, вторые три отсека - Группа, третьи три отсека - Все остальные. В этих группах по порядку идут: доступ на чтение, на запись, на исполнение, где крест обозначает, что эта опция для данной группы задействована. То есть, меняйте права доступа по ftp через файловый менеджер, другого пути у Вас может не быть.

Права доступа через ftp и менджер Far должны будут выглядеть так:

Папки, где должны записываться файлы733[x][x][x][-][x][x][-][x][x]
Папки, абсолютно все остальные711[x][x][x][-][-][x][-][-][x]
Простые файлы744[x][x][x][x][-][-][x][-][-]
Файлы, с базами данных766[x][x][x][x][x][-][x][x][-]

Что получилось при таком подходе. Все папки читать запрещено. 733 - права для папок куда будут писаться новые и стираться старые файлы. 711 - права для всех остальных папок. 744 - права к обычным файлам, 766 - права к файлам с базами данных.

Мы с Вами рассмотрели, какие на самом деле должны быть права доступа, и как они должны работать. Если, всё же Ваши скрипты не работают, то есть сам сервер сконфигурирован как-то по-хитрому, то повышайте права доступа. Чтобы вообще не задумываться об этом, можете на всё установить самые большие права 777.

Если Вы не знаете, что такое менеджер Far, то можете воспользоваться нашим скриптом ...здесь..., по поводу входа по Ftp и изменению прав доступа к файлам и папкам на Вашем ресурсе... В нашей программе, если рядом с файлом или папкой стоит слово no - значит нет прав доступа на запись, просто кликните на этом слове и права появятся.

Источник omsk777.ru
Источник
Архив новостей дизайна
  Copyright © 2004-2024 FireNET.ru Generation time: 0.0127  
html, css validators  

  
   Если желаете написать для сайта свою статью или урок (с вознаграждением!) — напишите нам на web[  ]firenet.ru
   Мы также готовы рассмотреть все предложения по сотрудничеству и рекламе тематических сайтов на нашем проекте.
   Пишите нам и мы обязательно ответим!