Victor |
Отправлено: 14 июня 2009 — 07:53
|
Full Member
Покинул форум
Сообщений всего: 237
Дата рег-ции: Март 2009
Репутация: 14
|
Права доступа - это атрибуты папки или файла, указывающие серверу, кто и что может делать с соответствующей папкой или файлом. Как правило, права доступа регламентируют такие действия как чтение, запись в папку или файл и выполнение.
Для тех кто пользуется Windows Commander или Total Commander:
Заходим по FTP на наш сайт, выбираем нужную нам папку или файл и далее отправляемся в меню Файл -> Изменить атрибуты (Files -> Change Attributes)
Перед нами права доступа к файлу или папке для трех групп пользователей: “Owner” (владелец папки или файла), “Group” (член группы, к которой принадлежит владелец папки или файла) и “World” (все остальные). Когда вы соединяетесь с сервером, на котором находится ваш сайт, он определяет к какой из трех групп вы относитесь. И соответственно следующие возможные действия, оторые мы устанавливаем при помощи галочек:
Read (Чтение)
Write (Запись)
Execute (Выполнение)
Права доступа на папку или файл принято представлять в виде трех цифр (например, 777), где каждая цифра обозначает права доступа для своей группы пользователей. Первая цифра устанавливает совокупные права для группы “Owner”, вторая - для группы ”Group” и третья для ”World”. В свою очередь цифра для каждой группы представляет собой арифметическую сумму трех цифр, обозначающих следующие права:
4 = Read (право на чтение)
2 = Write (право на запись)
1 = Execute (право на выполнение)
7 = 1+2+4 - Read, Write, Execute
6 = 4+2 - Read, Write
5 = 4+1 - Read, Execute
4 = 4 - Read
3 = 1+2 - Write, Execute
2 =2 - Write
1 =1 - Execute
Таким образом, что бы установить нужные нам права доступа 777 необходимо установить галочки для всех групп пользователей и во всех атрибутах.
Однако в целях безопасности хостинг не всегда позволяет использовать права доступа 777, чаще разрешены права доступа 755, что не мешает нормальной работе скрипта. права доступа всегда можно уточнить у хостера. установка в ручную других прав не принесет результата если на хостинге такие права не разрешены.
Для файлов используется 666, а чаще 644 |
|
|
1Bot |
Отправлено: 23 марта 2010 — 09:19
|
Super Member
Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009
Откуда: Днепропетровск
Репутация: 69
|
Пермишн (permissions) означает права доступа к файлу. Это только в Unix системах. Еще говорят chmod это уже стало синонимами, хотя на самом деле, chmod это команда в Unix с помощью которой и меняют эти пермишены.
Вообще, вас не должны интересовать пермишены для файлов графики, например, или для zip архивов, для mp3 файлов и других. Никогда их не выставляйте. То что им сервер ставит, то пусть и будет.
Выставляйте пермишены только для выполнимых файлов (в данном случае файлы *.php) плюс для папок, куда эти скрипты пишут. Для скриптов необходимо 0755, это означает, что владелец имеет права на чтение, запись и выполнение скрипта, а его группа и остальные пользователи только на чтение, и выполнение.
Для некоторых папок, например members 0777 это означает, что все туда могут писать. Это теория, и такие пермишены требует установить файл хелпа по установке форума. А вы его читали?
На практике же, такие серваки как, walls, webservis и другие, не запустят скрипт, если у него стоит пермишен выше 0750, поэтому всегда ставьте пермишены, такие, какие требуются на данном сервере для скриптов, все эти требования у них в FAQ написаны. |
|
|
1Bot |
Отправлено: 20 ноября 2012 — 08:25
|
Super Member
Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009
Откуда: Днепропетровск
Репутация: 69
|
Основные биты доступа (чтение/запись/выполнение)
Есть у пользователей БОЛЬШАЯ ПУТАНИЦА при определении доступности к файлам, особенно МНОГИЕ ПУТАЮТ (считают идентичными) ПРАВА ДЛЯ ФАЙЛОВ и ПРАВА ДЛЯ ДИРЕКТОРИЙ, поэтому подробнее - что представляют собой "права доступа"?
При распечатке содержимого директории (например, командой ls) каждая строчка имеет вид
CODE: -rw-r--r-- 1 pascal users 4297 13 мар 21:45 files1
причем нас интересует в данном случае только первая колонка.
Она состоит из десяти знаков. Однако, самый первый знак не имеет отношения к permissions, а обозначает "тип этого объекта". Поскольку, в директории кроме файлов могут находится поддиректории и, кроме того, в Юниксе, кроме обычных файлов существуют другие объекты ("линки", "очереди", "сокеты" и т.п.), которые также находятся в директориях и имеют атрибуты как и у обычных файлов. Так вот, первый символ как раз и показывает - что за объект мы видим, обычный файл (значок "-"), поддиректорию (значок "d") или еще какой-нибудь специфический Юниксовый объект ("l", "s", "p"...).
Остальные девять знаков на самом деле представляют собой три группы по три символа. Каждая такая группа определяет права для какой-либо из трех категорий юзеров
первая группа - права "хозяина"
вторая группа - права "группы особо допущенных"
третья группа - права для "всех остальных"
Смысл отдельных битов в каждой такой группы "прав" одинаков для всех трех категорий пользователей, поэтому можно подробнее рассматривать любую такую группу, не уточняя - для какой категории пользователей она предназначена.
Однако, ДЛЯ ФАЙЛОВ И ДИРЕКТОРИЙ СМЫСЛ ЭТИХ БИТОВ НЕМНОГО ОТЛИЧАЕТСЯ, поэтому их стоит рассмотреть отдельно.
Для файлов
Первый бит, обозначается буквой "r" (read), и означает, что пользователю, подпадающему под соответствующую категорию, разрешается читать содержимое этого файла.
То есть он может посмотреть содержимое файла, а также скопировать этот файл. Кстати, это не означает, что пользователь сможет запустить его на выполнение (если это программа).
Второй бит, обозначается буквой "w" (write) и разрешает писать в файл. То есть пользователь сможет изменить содержимое файла (например, каким-нибудь редактором), дописать что-нибудь в конец или стереть все содержимое.
Обратите внимание, этот бит еще не дает право удалить сам файл из директории или изменить ему название (это определяется правами на саму директорию), но дает возможность сделать этот файл пустым (нулевой длины) или скопировать в него содержимое другого файла (и тем самым "подменить" его).
И, наконец, третий бит, обозначается буквой "x" (eXecute), позволяет запустить на выполнение этот файл, если он представляет собой программу или командный файл.
Обратите внимание, что это также основной признак, по которому система догадывается о "запускаемости" этого файла. Часто начинающие пользователи составив какой-нибудь командный файл, забываю установить на него бит "исполнения" хотя бы для себя - владельца этого файла. В результате, при попытке запустить его, система сообщает, что "вы не имеете права" (выполнять этот файл). Естественно, что в данном случае причина не в том, что "злобный" администратор существенно "урезал" права этого пользователя, а в том, что он сам забыл "наделить себя правом" (вполне законным).
Для директорий
Первый бит ("r") разрешает читать оглавление этой директории, то есть список файлов и поддиректорий, находящихся в ней. Однако, этот бит еще не дает возможность зайти в эту директорию (командой cd) или получить доступ к содержимому, то есть читать/запускать/изменять файлы, даже если "права доступа" установленные на самих файлах это позволяют.
Поэтому, само по себе "право чтения" директории практически бесполезно и этот бит, как правило ставиться только вместе с битом "x".
Немного забегая вперед, рассмотрим сразу третий бит - "x". Для директорий он как раз означает, что пользователь может получит доступ к "компонентам", то есть отдельным файлам и поддиректориям. Только при наличии это бита, система разрешит войти в эту директорию и выполнить какое-нибудь действие с файлом, если сами файлы ("права доступа" на них) это позволят.
Кстати, обратите внимание, что если даже внутренние поддиректории имеют "нормальные" права для какой-то категории пользователей, а вышестоящая директория - нет (отсутствует бит "x"), то этим ПОЛЬЗОВАТЕЛЯМ НЕ УДАСТСЯ ЗАЙТИ В ПОДДИРЕКТОРИИ, минуя вышестоящую. Система проверяет полный "путь" до конечной директории или файла (например, /usr/share/misc/fonts) и, если ХОТЯ БЫ ОДИН из компонентов этого пути не имеет соответствующего бита, то пользователю будет ОТКАЗАНО В ДОСТУПЕ.
Наконец, бит "w", установленный на директории, позволяет изменять оглавление директории. То есть, разрешает создавать новые файлы (или копировать другие файлы в эту директорию), менять названия файлов и удалять файлы.
Обратите внимание на "разделение полномочий" между теми permissions, которые стоят на файле и теми, которые на директории.
Как уже говорилось, если права на директорию не позволяют пользователю удалить файл, находящийся в ней (нет бита "w") это не означает, что пользователь не сможет "удалить содержимое" файла (например, "вытерев" все в нем редактором).
С другой стороны, если пользователь имеет право менять содержимое директории, он сможет удалить или переименовать любой, находящийся в ней файл, даже если права на самом файле не позволяют ему не то что писать в файл, но и читать его.
И еще на что следует обратить внимание. Никакие из перечисленных здесь прав не имеют отношения к изменениям самих "атрибутов доступа", то есть - владельца файла, группы и permissions. Их изменение подчиняется другим законам.
И последнее замечание. Все эти биты не имеют никакого эффекта для пользователя root (и программ, которые во время выполнения поменяли свой "эффективный userID" на "рутовский"). То есть, он может делать с файлом или директорией все что хочет.
Правда, и здесь есть одно исключение. Поскольку бит "x" на файле является основным признаком "исполняемости" этого файла, даже root не сможет убедить систему, что файл является программой и его можно выполнять, пока не поставит в атрибутах этот бит. |
|
|
1Bot |
Отправлено: 3 января 2013 — 17:44
|
Super Member
Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009
Откуда: Днепропетровск
Репутация: 69
|
BON пишет:когда файлы закидываются на никс системы то права автоматом выставляются 755 и 644, и не выше, а вот толку от них может не быть, бывает ещё надо меня овнер'а (OWNER), т.е. иногда надо менять владельца
OWNER (владелец) для скопированных файлов (разумеется, если есть права на запись в них) выставляется тот, под которым Вы подключились к серверу , хотя и тут есть особенность, а именно - если файл с таким именем уже существовал, то владелец на него остается прежним.
И самый важный вопрос - сможет ли процесс web-server-а прочитать/записать заброшенный на сервер файл?
Ответ на этот вопрос зависит от того под каким пользователем запущен процесс web-serverа и в какую группу входит этот пользователь. Как правило это пользователь apache и группа apache.
Очень желательно (дабы не менять для файлов владельца) чтобы пользователь, который заливает файлы на web-server состоял в группе apache и для файлов устанавливать чтение/запись для владельца и группы, а для директорий также и выполнение. |
|
|
|