Что означают права доступа к файлу обозначенные числом 762

Обновлено: 02.07.2024

В Unix каждому файлу соответствует набор прав доступа, представленный в виде 9-ти битов режима. Он определяет, какие пользователи имеют право читать файл, записывать в него данные или выполнять его. Вместе с другими тремя битами, влияющими на запуск исполняемых файлов, этот набор образует код режима доступа к файлу. Двенадцать битов режима хранятся в 16-битовом поле индексного дескриптора вместе с 4-мя дополнительными битами, определяющими тип файла. Последние 4 бита устанавливаются при создании файлов и не подлежат изменению. Биты режима (далее права) могут изменяться либо владельцем файла, либо суперпользователем с помощью команды chmod.

Существует три пути управления доступом к файлу или каталогу. Было определено, что каждый файл должен иметь владельца (owner), группового владельца (group owner), а также может потребоваться доступ для всех остальных пользователей (everyone). Эти названия обычно приводятся как пользователь/группа/остальные (user/group/others) или коротко ugo. Реализация управления доступом к файлам и каталогам в Unix позволяет или запрещает доступ по трем флагам: флаг чтения (Read), флаг записи (Write), флаг выполнения (eXecute). Они представляются следующим образом:

Флаг типа (flag) может быть одним из следующих:

Права доступа

Для назначения прав используются три группы флагов, первая определяет права для владельца, вторая - права для основной группы пользователя, третья - для всех остальных пользователей в системе.

Для файлов: r - право на чтение из файла; w - разрешает запись в файл (в частности перезапись или изменение); x - позволяет исполнить файл.

Для каталогов, флаги r w x имеют несколько отличный смысл: r - позволяет читать только имена файлов в каталоге; x - позволяет иметь доступ к самим файлам и их атрибутам (но не именам); w имеет смысл только в сочетании с x, и позволяет (в дополнение к x) манипулировать с файлами в каталоге (создавать, удалять и переименовывать). w без x - не имеет никакого эффекта.

Рассмотрим таблицу, чтобы было понятнее:

OCT BIN Mask Права на файл Права на каталог
0 000 - - - отсутствие правотсутствие прав
1 001 - - x права на выполнениедоступ к файлам и их атрибутам 1)
2 010 - w - права на записьотсутствие прав
3 011 - w x права на запись и выполнениевсе, кроме доступа к именам файлов 2)
4 100 r - - права на чтениетолько чтение имен файлов
5 101 r - x права на чтение и выполнениечтение имен файлов и доступ файлам и их атрибутам 3)
6 110 r w - права на чтение и записьтолько чтение имен файлов
7 111 r w x полные прававсе права

Для администрирования часто удобнее использовать не буквенное представление прав, а цифровое, в восьмеричном представлении (оно короче). Так, например, права на файл всем и вся, соответствуют записи 777 (что аналогично символьному представлению rwxrwxrwx).

Существуют также специальные биты, такие как SUID, SGID и Sticky-бит. SUID, SGID влияют на запуск файла, а Sticky влияет на определение владельца объектов в каталоге. При их применении необходимо использовать не три восьмеричных цифры, а 4. Зачастую, в различной технической литературе права обозначаются именно 4-мя цифрами, например 0744. Многие стараются не использовать специальные биты, сетуя на безопасность (и не без основательно), но, в некоторых ситуациях без них не обойтись. Поговорим о них несколько позже.

Давайте рассмотрим пример, итак:

Для первой строки:

Следующие три символа (rwx) обозначают права для владельца файла, в данном случае полные права для пользователя allexserv. 4)

Следующие три (- - -) - определяют права для группы nogroup, в нашем примере для всех пользователей группы nogroup доступ запрещен.

Ну и последние три символа (- - -) определяют права для всех остальных пользователей, в нашем случае доступ запрещен.

Восьмеричное обозначение прав для файла pro_ubuntu.zip: 0700.

Восьмеричное обозначение в этом примере: 0755.

Для полноценного просмотра каталога, необходимы права на чтение каталога и доступ к файлам, а главное к их атрибутам, т.е. минимальные разумные права на каталог - 5 (r-x). Прав 4 (r–) хватит только на просмотр имен файлов, без атрибутов, т.е. не будут известны размер файла, права доступа, владелец.

На практике для каталогов используется только три режима: 7 (rwx), 5 (r-x) и 0 (—).

Очень любопытный режим доступа к каталогу - 3 (-wx): он позволяет делать в директории все, что угодно, но не позволяет прочитать имена объектов в директории. Т.е. если вам не известны названия объектов в этом каталоге, то вы сделать с ними ничего не сможете (даже удалить по маске * т.к. маску не к чему применять - имена то недоступны).

Никакой рекурсивный поиск/удаление тоже не сможет залезть внутрь такого каталога - ему ведь нужны названия - а их из такого каталога - никак не получить.

Но не надо думать, что такой каталог полноценно заменяет крипто-контейнер (т.е. может использоваться для хранения очень секретных данных). Да, имен объектов из такого каталога никак не получить, однако если попытаться создать объект с именем, которое уже существует, то такая операция закончится неудачей (т.е. мы получим подтверждение, что такое имя уже есть). Так же можно пытаться открыть (как файл или как каталог) объект с произвольным именем, если такого имени нет, то мы получим ошибку. Безусловно имя может быть очень длинным и шансы угадать его могут быть не велики, но не надо забывать, что права доступа могут сменить как владелец каталога так root. Да и пути доступа могут сохраниться в различных логах и файлах истории.

Команда chmod

Права устанавливаются командой chmod. Команда chmod поддерживает установку прав как в восьмеричном представлении, так и в символьном (маска режима доступа).

Синтаксис команды прост:

chmod

Опции

Из самых полезных и часто используемых опций можно выделить одну:

-R - рекурсивное назначение прав. Т.е. назначить права всем объектам, руководствуясь регулярным выражением.

chmod -R 700 z* - Назначить полные права для владельца и исключить права для группы и всех остальных для всех объектов, которые начинаются именоваться на z, находящиеся в текущем каталоге и его подкаталогах. 6)

Права

Права можно записывать как в восьмеричном представлении так и в символьном. В восьмеричном представлении, для стандартных прав, указываются 3 восьмеричные цифры (1-я для владельца, 2-я для группы, 3-я для всех остальных. См. таблицу выше).

chmod -R 775 sobaki - установит права на каталог sobaki и на все объекты, что внутри этого каталога, включая содержимое подкаталогов (r w x r w x r - x);

chmod 700 * - установит права только для владельца на все файлы и каталоги в текущем каталоге, включая подкаталоги и их объекты (rwx - - - - - -).

Другой способ назначения прав - это использование маски режима доступа (символьное представление). Помимо прав задается еще кому мы собираемся эти права выставлять:

Для назначения прав используются три знака: минус, плюс или равно:

Использование символьного представления позволяет редактировать права файлов более гибко:

chmod u+x,g+w-x koshki.txt - Добавить владельцу файла koshki.txt права на его выполнение, пользователям группы разрешить запись и запретить выполнение и оставить права остальных пользователей без изменений;

chmod u=rwx,g+w,go-x sobaki.doc - Установить полные права для владельца файла, разрешить пользователям группы запись и запретить выполнение всем пользователям, кроме владельца файла.

Символьное назначение окажет неоценимую услугу, если требуется добавить права на объект к уже существующим правам.

Массовое назначение прав

Иногда, бывает, нужно массово установить права на определенный тип объектов, например, только на каталоги или только на файлы. Простое использование опции -R (рекурсия) здесь не поможет т.к. chmod будет проходить по всем объектам удовлетворяющим маске, что иногда вовсе не то, что нужно.

Итак, чтобы массово установить права на определенный тип объектов можно использовать один из вариантов (вообще, их очень много):

где -type d - каталоги, -type f - файлы. В данном примере chmod установит, начиная от текущего каталога 7) , права на все каталоги (включая подкаталоги) разрешения 770 (rwx rwx- - -) при этом не трогая права на другие объекты.

Более длинный вариант аналогичной операции:

где -type d - каталоги, -type f - файлы. В данном варианте chmod установит разрешения 775 на все файлы включая файлы в подкаталогах начиная от текущего.

Биты SUID, SGID и Sticky

Unix отслеживает не символьные имена владельцев и групп, а их идентификаторы (UID - для пользователей и GID для групп). Эти идентификаторы хранятся в файлах /etc/passwd и /etc/group соответственно. Символьные эквиваленты идентификаторов используются только для удобства, например, при использовании команды ls, идентификаторы заменяются соответствующими символьными обозначениями.

1000 - идентификатор (GID) дополнительной группы allexserv пользователя allexserv 8)

Если при создании пользователя основная группа не указана явно, то основной группой пользователя будет группа с тем же именем, что и имя пользователя. Например:

Что касается процессов, то с ними связано не два идентификатора, а 4-е: реальный и эффективный пользовательский (UID), а также реальный и эффективный групповой (GID). Реальные номера применяются для учета использования системных ресурсов, а эффективные для определения прав доступа к процессам. Как правило, реальные и эффективные идентификаторы совпадают. Владелец процесса может посылать ему сигналы, а также изменять приоритет.

Процесс не может явно изменить ни одного из своих четырех идентификаторов, но есть ситуации когда происходит косвенная установка новых эффективных идентификаторов процесса. Дело в том, что существуют два специальных бита: SUID (Set User ID - бит смены идентификатора пользователя) и SGID (Set Group ID - бит смены идентификатора группы). Когда пользователь или процесс запускает исполняемый файл с установленным одним из этих битов, файлу временно назначаются права его (файла) владельца или группы (в зависимости от того, какой бит задан). Таким образом, пользователь может даже запускать файлы от имени суперпользователя.

Вобщем, одним словом установка битов SUID или SGID позволит пользователям запускать исполняемые файлы от имени владельца (или группы) запускаемого файла. Например, как говорилось выше, команду chmod по умолчанию может запускать только root. Если мы установим SUID на исполняемый файл /bin/chmod, то обычный пользователь сможет использовать эту команду без использования sudo, так, что она будет выполнятся от имени пользователя root. В некоторых случаях очень удобное решение. Кстати по такому принципу работает команда passwd, c помощью которой пользователь может изменить свой пароль.

Возьмите на заметку! Если установить SGID для каталога, то все файлы созданные в нем при запуске будут принимать идентификатор группы каталога, а не группы владельца, который создал файл в этом каталоге. Аналогично SUID. Одним словом, если пользователь поместил исполняемый файл в такой каталог, запустив его, процесс запустится от имени владельца (группы) каталога, в котором лежит этот файл.

Однако, в системе FreeBSD, если скомпилировать ядро с поддержкой suiddir, а так же смонтировать раздел с этой опцией, то, все объекты создаваемые в каталоге где установлен SUID будут иметь владельца этого каталога (наследование). Реализация подобного в Linux возможна (?) на файловой системе GFS2. Данная функция считается уязвимостью.

Установить SUID и SGID можно командой chmod:

chmod 4755 koshka.pl - устанавливает на файл koshka.pl бит SUID и заменяет обычные права на 755 (rwxr-xr-x).

chmod 2755 koshka.pl - устанавливает на файл koshka.pl бит SGID и заменяет обычные права на 755 (rwxr-xr-x).

Догадайтесь, что произойдет если выполнить такую команду:

Снять установленные биты можно различными способами:

Отображение SGID и SUID:

Еще одно важное усовершенствование касается использования sticky-бита в каталогах. 10) Каталог с установленным sticky-битом означает, что удалить файл из этого каталога может только владелец файла или суперпользователь. Другие пользователи лишаются права удалять файлы. 11) Установить sticky-бит в каталоге может только суперпользователь. Sticky-бит каталога, в отличие от sticky-бита файла, остается в каталоге до тех пор, пока владелец каталога или суперпользователь не удалит каталог явно или не применит к нему chmod. Заметьте, что владелец может удалить sticky-бит, но не может его установить.

Установить sticky-бит на каталог можно используя команду chmod:

Убрать sticky-бит на каталог можно:

Отображение sticky-бит:

Итак, использование sticky позволяет реализовать, например, т.н. каталоги-помойки. Пользователи смогут писать файлы в такие каталоги, но не смогут удалять чужие файлы.

Пример с каталогом на котором установлен sticky:

Расширенные права

Очевидно, что использование стандартных прав Unix недостаточно при реализации сложных схем доступа. Они не так гибки как хотелось бы. Даже используя различные биты доступа в сочетании со стандартными правами, желаемого эффекта в большинстве случаев не добиться.

В больших сетях, с многоуровневыми схемами доступа применяется более гибкая реализация назначения прав, именуемая как ACL - Списки контроля доступа.

Можно читать/изменять/запускать(если разрешено правами на сам файл), а также создавать/удалять/переименовывать файл, но только если вы знаете его имя. Узнать имена файлов в каталоге - нет никакой возможности

Обратите внимание, что применение прав к объектам в подкаталогах произойдет только в том случае, если сам подкаталог начинает именоваться на z. Т.е. рекурсия будет применяться только и только к тем объектам, которые удовлетворяют регулярному выражению.

Обратите внимание, в этом примере основная группа пользователя allexserv - это группа root (идентификатор 0) - при создании этого пользователя ему была явно указана принадлежность к группе root.

Обратите внимание, что, если вы устанавливаете биты SGID и SUID посредством восмеричного назначения прав, с их заменой, то регистр символа будет строчный.

В отличии от установки sticky на каталог, на файл такой бит устанавливать уже не имеет смысла. Многие современные ядра попросту игнорируют sticky на файле. На файлах он использовался на старых системах с малой ОЗУ и был очень важен в те времена. Он запрещал выгрузку программ из памяти.

Даже если имеют права 7 (rwx), хотя писать (создавать) файлы в таких каталогах они могут, при условии что имеют права 7 (rwx)

Для тех, кто ищет быстрый способ парой командой массово поменять права доступа на файлы и папки:

Если не в курсе, что это, подробности далее

  • Что такое Chmod
  • Зачем использовать Chmod
  • Синтаксис Chmod
  • Ключи -R, -v, -f
  • Правила доступа Chmod
  • Как проверить права Chmod
  • Пример правильного использования Chmod
  • После использования Chmod появились ошибки

Что такое Chmod

Это UNIX-утилита, с помощью которой можно быстро через консоль изменить права на доступ для определённых владельцев (owner) и групп (group) для указанных категорий и файлов.

Зачем использовать Chmod

В UNIX-системах — FreeBSD, Ubuntu, Debian, Centos — у каждого файла и папки (каталога) есть свои владелец и группа, к которым они относятся. Сделано это с целью разграничения прав доступа на чтение (r, read), запись (w, write) и исполнение (x, execute) для разных пользователей: владельцев (u), пользователей, входящих в группу владельца (g) и остальных (o).
Например, если вы пользуетесь хостингом, то должны знать, что ваш сайт физически находится на одном сервере рядом со множеством других сайтов таких же, как вы, пользователей со своими сайтами. Чтобы вы не смогли помешать друг другу, у каждой директории с сайтами свой владелец и группа пользователей, к которым они относятся.
На shared хостинге о вас позаботятся профессиональные системные администраторы. А если вы имеете свой сервер VDS/VPS, то просто обязаны следить за прописанными правами на доступ к файлам. Например, если вдруг с помощью уязвимости на сайте злоумышленник сможет записать backdoor в директорию для загрузки файлов, то с правильно прописанными правами доступа он не сможет причинить большого вреда файловой системе. Конечно, в директории для загрузки файлов должно быть принудительно отключено исполнение скриптов, но это тема уже для другого разговора.

Синтаксис Chmod

В части [Правила доступа] могут быть либо числовые, либо символьные значения.
[Файл/Файлы/Каталог файлов] — путь к файлу, файлам или к каталогу файлов, абсолютный или относительный.

Ключи -R, -v, -f

Правила доступа Chmod

Как вы уже знаете, права доступа определяются тем, как пользователь может взаимодействовать с файлами и каталогами, а именно r — read (чтение), w — write (запись), x — execute (выполнение).
А также, вы знаете, что эти права должны быть прописаны для трёх групп пользователей:

  1. Владелец файла или каталога;
  2. Пользователи, входящие в группу владельца;
  3. Остальные.

Теперь посмотрим в таблицу определения прав:

Три варианта записи прав пользователей

Три варианта записи прав пользователей

То есть, для того, чтобы записать правило для владельца дать доступ на чтение и запись, остальным дать права только на чтение, мы должны дать права ( rw-r--r-- )

Теперь обратите внимание на столбец Символьная и Восьмеричная . Там визуально показано, что то, что выглядит символьно как ( rw-r--r-- ), в восьмеричном виде выглядит как ( 644 ). Это выражение и будем использовать как числовую запись в команде.

Как проверить права Chmod

где index.php — файл или каталог, который нужно проверить.

Пример правильного использования Chmod

Правила доступа по умолчанию для каталогов 755 , для файлов 644 . Поэтому, в подавляющем большинстве случаев, вам понадобятся только эти права.

Первой командой переходим в нужную директорию, далее с помощью команды find ищем нужный тип: файлы -f (files) и каталоги -d (directories) — и запускаем chmod с нужными правами.

После использования Chmod появились ошибки

Если после правильной настройки Chmod перестали открываться некоторые страницы сайта, открывается белый экран, не загружаются файлы на сайт, проверьте, правильно ли вы установили Chown для всех каталогов и файлов сайта, возможно, права доступа стоят слишком строгие. Либо или php, или Apache запускаются не от того пользователя.

Система полномочий в Linux имеет очень важное значение, поскольку благодаря ей можно разделять привилегии между пользователями, ограничить доступ к нежелательным файлам или возможностям, контролировать доступные действия для сервисов и многое другое. В Linux существует всего три вида прав - право на чтение, запись и выполнение, а также три категории пользователей, к которым они могут применяться - владелец файла, группа файла и все остальные.

Эти права применяются для каждого файла, а поскольку все в системе Linux, даже устройства, считаются файлами, то, получается что эти права применимы ко всему. Мы более подробно рассматривали как работают права доступа к файлам Linux в отдельной статье, а этой, я хочу остановиться на команде chmod, которая используется для установки прав.

Команда chmod Linux

Эта команда имеет типичный для команд linux синтаксис, сначала команда, затем опции, а в конце файл или папка, к которой ее нужно применить:

$ chmod опции права /путь/к/файлу

Сначала рассмотрим какими бывают права доступа linux и как они устанавливаются. Пред этим рекомендую прочитать статью про права, ссылка на которую есть выше. Есть три основных вида прав:

Также есть три категории пользователей, для которых вы можете установить эти права на файл linux:

Синтаксис настройки прав такой:

группа_пользователей действие в ид_прав

В качестве действий могут использоваться знаки "+" - включить или "-" - отключить. Рассмотрим несколько примеров:

  • u+x - разрешить выполнение для владельца;
  • ugo+x - разрешить выполнение для всех;
  • ug+w - разрешить запись для владельца и группы;
  • o-x - запретить выполнение для остальных пользователей;
  • ugo+rwx - разрешить все для всех;

Но права можно записывать не только таким способом. Есть еще восьмеричный формат записи, он более сложен для понимания, но пишется короче и проще. Я не буду рассказывать как считать эти цифры, просто запомните какая цифра за что отвечает, так проще:

Права на папку linux такие же, как и для файла. Во время установки прав сначала укажите цифру прав для владельца, затем для группы, а потом для остальных. Например, :

  • 744 - разрешить все для владельца, а остальным только чтение;
  • 755 - все для владельца, остальным только чтение и выполнение;
  • 764 - все для владельца, чтение и запись для группы, и только чтение для остальных;
  • 777 - всем разрешено все.

Каждая из цифр не зависит от предыдущих, вы вбираете именно то, что вам нужно. Теперь давайте рассмотрим несколько опций команды, которые нам понадобятся во время работы:

Теперь, когда вы знаете опции и как настраиваются права доступа chmod, давайте рассмотрим несколько примеров как работает команда chmod linux.

Примеры использования chmod

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


Или можно воспользоваться цифровой записью:

chmod 766 file
ls - l file

Недостаток цифровой записи в том, что вы не можете модифицировать уже существующие права доступа linux. Например, в первом варианте вы просто добавили флаг выполнения для владельца файла, а все остальные права оставили неизменными. В восьмеричном варианте мы полностью заменили текущие права новыми - все для владельца и чтение/запись для группы и остальных. Как видите, права установлены как и ожидалось. Теперь отключим выполнение владельцем:


И снова проверяем:

Дальше разрешим только чтение всем, кроме владельца:

chmod 744 file
ls -l file


Или отберем все права:

chmod ugo-rwx file

Файлы с правами 000 недоступны никаким пользователям, кроме суперпользователя и владельца. Вернем права обратно:

chmod 755 file
ls -l file


Такая же ситуация с файлами, владельцем которых вы не являетесь, если вы хотите изменить их права - используйте sudo. Из модификаторов прав вы можете конструировать любые последовательности, я думаю тут нет смысла разбирать их все. Для того чтобы поменять права на все файлы в папке используйте опцию -R:

chmod -R ug+rw dir
ls -l dir/


Также вы можете смотреть подробную информацию про вносимые изменения, например:

chmod -Rv ug+rw dir


Выводы

В этой небольшой статье была рассмотрена команда chmod linux. Она очень часто используется наряду с такими командами, как chown и umask для управления правами. Надеюсь, эта информация была полезной для вас. Если у вас остались вопросы, спрашивайте в комментариях!


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

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

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

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

Права доступа указываются с помощью команды chmod:

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

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

Сумма этих цифр и показывает права доступа. 7 = 4 + 2 + 1 + 0 (полные права), 5 = 4 + 1 (чтение и выполнение), 6 = 4 + 2 (чтение и запись), и так далее.

Здесь показаны различные комбинации прав доступа в цифрах:

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

Рассмотрим некоторые из комбинаций прав доступа в цифрах по группам

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

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

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

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

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

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

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

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

На все файлы, которые не будут меняться права не выше 744 (файлы .html, .php, и другие). На файлы с базами данных (.dat) ставьте 766. Обратите внимание, что на файлы, мы вообще, не ставим самые большие права 777, так как это совсем не нужно, и даже, очень вредно.

Как определить текущие права доступа? Заведите в папке файл file.txt, и в саму папку запишите такой небольшой скрипт:

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

Теперь вопрос, а как же изменить права доступа?
Суперпользователь root меняет их на сервере с помощью команды chmod, из командной строки:

После этого, на файл filename распространяются самые большие права доступа, но Вы не имеете доступа к серверу. Просить системного администратора изменить Вам права доступа на собственные файлы не принято, а средствами Php, увы, права изменить нельзя, потому что система определит Вас, как владельца ресурса, только после авторизации, то есть после проверки пароля в базе данных Linux. Обычными средствами, через php сделать это трудно, поэтому Вы будете заходить на сайт браузером как обычный юзер:

То есть, этот скрипт не работает, потому что юзеру, которым Вы будете считаться, запрещено менять права функцией chmod.

[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.

Читайте также: