Как дать скрипту права на выполнение

Обновлено: 30.06.2024

Что такое права?

Кто может изменять права?

Есть три типа пользователей которые имеют доступ к файлам — Владелец файла, члены Группы, владеющей файлом и Остальные (все прочие). В UNIX эти 3 типа пользователей обозначаются буквами U (для Владельца, или Юзер), G (для Группы), и O (для Остальных).

Какие права можно устанавливать?

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

  1. Вы можете читать содержимое файлов. Для каталогов - просматривать перечень имен файлов в каталоге.
  2. Вы можете писать (или изменять) файл. Для каталогов - создание и удаление файлов из директории.
  3. Вы можете исполнять (запускать) файлы, если это бинарные программы или скрпты. Для каталогов — иметь доступ к файлам в директории.

Что означают все эти буквы и цифры?!

Здесь мы рассмотрим основы. Как вы можете заметить их не так уж и много на самом деле!

Путаница часто происходит, когда Вам надо сделать установку прав на сервере. Для CGI скриптов необходимо устанавливать права что-то вроде "Chmod 755" или "Убедитесь, что файл является исполняемым". Кроме того, при использовании FTP или SSH, вы увидите множество забавных букв рядом с файлами (например, rwxrw-rw). Сейчас мы объясним, что означают эти иероглифы!

Когда вы подключаетесь по FTP на ваш веб-сервер, вы вероятно увидите что-то типа этого возле каждого файла и папки:

Эта последовательность букв drwxrwxrwx означает права, установленные для этой папки (заметим, что их часто называют атрибутами FTP программы). Давайте разберем, что каждая из этих букв означает:

Как вы можете видеть, последовательность букв разделяется на 3 колонки по 3 буквы каждая, обозначающие каждый из типов пользователей (владелец, члены группы, и все остальные).

Существует также и буква "d" атрибут слева, который говорит нам о том, что данный объект является директорией.

Если любая из этих букв заменена на дефис (-), то это означает, что разрешение не установлено. Например:

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

Файл, который может быть прочитан и изменён всеми, но не исполняем ни для кого.

Файл который может прочитать и изменить пользователь, а прочитать только пользователи группы и остальные пользователи.

Использование чисел вместо букв

Как мы уже раньше говорили, вас будут часто просить установить права с помощью чисел таких, как "set 755 permissions". Что означают эти цифры?

Каждое из трех чисел соответствует каждой букве (r w x) о которых мы говорили ранее. Иными словами, первое число определяет права для владельца, второе число определяет права для группы, а третье число определяет права для всех остальных.

Каждое число может принимать одно из восьми значений в диапазоне от 0 до 7. Каждое значение соответствует определенным правам на чтение, запись и выполнение ", как указано в этой таблице:

Настройка разрешений

Два самых распространённых способа установить разрешения на файлы и папки это с помощью FTP или SSH. Давайте рассмотрим первым FTP.

Установка разрешений с помощью FTP

С помощью FTP вы сможете установить права на ваши файлы, выбрав файл (в отдельном окне) и правой кнопкой мыши выбрать необходимые вм опции, такие как CHMOD или Set permissions или же выбрав в меню пункт CHMOD / Set permissions.

Как видите, довольно легко установить или убрать права на чтение, запись и выполнение для владельца, группы и других, используя флажки. Кроме того, вы можете ввести в эквиваленте 3-значный номер, если вы уже знаете как (см. предыдущий раздел). Все очень просто!

Установка разрешений с помощью SSH

Другой распространенный способ установить разрешения на файлы с помощью SSH (или консоли). Это в целом быстрее, если вы хотите изменить права на большое количество файлов одновременно (например, изменение всех. CGI файлов в папке только на вполнение).

После того, как вы подключитесь по SSH к вашему серверу, и залогинетесь в систему, перейдите в папку, содержащую файлы, которые вы хотите изменить, например:

Использование буквенного способа

Вы можете использовать буквы u (владелец / пользователь), g (группы) и o (другие), чтобы установить разрешение для каждого из типов пользователей, а также r (чтение), w (запись) и x (выполнение) для установки прав.

Вы также можете использовать "a" вместо u, g и o, что является синонимом для всех пользователей (u, g, o).

Вы можете назначить разрешения, используя либо знак плюс (+), которое означает "добавить эти права", знак минус (-), что означает "удалить эти разрешения", или знак равенства (=), что означает "изменить разрешения для конкретного случая ". Например:

chmod a+x formmail.cgi добавляет разрешение на выполнение для всех пользователей в файле formmail.cgi (другими словами, делает исполняемый файл).

chmod u=rwx formmail.cgi чтение, запсь и выполнение для владельца (разрешений для группы и для других остаются без изменений).

chmod go-w formmail.cgi удаляет запись для группы и для других, в результате чего разрешения владельца остаются неизменными.

Проверка разрешений

Вы можете проверить разрешения на все файлы и папки в текущей директории с помощью команды:

Это покажет Вам разрешение для каждого файла и папки, так же, как и FTP программы.

GNU/Linux как любая Unix-подобная операционная система является многопользовательской. Это значит, что в системе могут работать одновременно или по-очереди несколько или множество пользователей. У каждого из них должно быть собственное файловое пространство, доступ к которому других пользователей ограничен.

Отсюда вытекает, что у любого файла в Linux должны быть специальные атрибуты – права на доступ. Эти атрибуты должны сообщать, кто имеет право работать с файлом.

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

Сам владелец (u – user) объекта – конкретный пользователь, чье имя числится в атрибутах файла как имя владельца этого файла. Обычно если пользователь создает файл, то он автоматически записывается как его владелец.

Группа (g – group), к которой принадлежит владелец файла. Когда в Linux создается пользователь, то для него создается одноименная группа. Однако средствами администрирования системы можно объединять пользователей в различные группы. При этом конкретный пользователь может входить в состав нескольких групп. Группы позволяют предоставлять права доступа к ресурсам сразу нескольким людям, но при этом ограниченному кругу лиц.

Все остальные (o – other) – это все те, кто не является владельцем файла и не принадлежит к группе владельца файла. То есть любой посторонний пользователь.

Права на файл могут изменять только владелец этого файла и суперпользователь.

Чтение, запись, выполнение

Чтение, запись, выполнение – это то, что можно делать с существующим файлом, возможные действия над ним. У каждой категории пользователей (владельца, группы, остальных) должны быть свои права на каждое вышеупомянутое действие.

Право на запись (w – write) позволяет изменять файл, то есть дописывать в него информацию или заменять ее другой.

Право на исполнение (x – execution) имеет смысл не для всех файлов, хотя может быть установлено для любого. Это право позволяет исполнять файл как программу, при этом в файле должны быть записаны инструкции для процессора, то есть файл должен быть исполняемой программой.

Буквенная запись прав доступа

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

Первые три записи – это права владельца , вторые три записи – права группы , последняя тройка – права на файл для всех остальных . Если обозначить каждое право соответствующей буквой, и все права всем предоставляются, то получится такая запись:

Мы уже видели нечто подобно в выводе команды ls -l . В первом столбце, после символа типа файла указываются права доступа к файлу в буквенной нотации.

Если какое-либо право не предоставляется той или иной категории, то вместо буквы ставится знак минус. Например, на скрине выше файл text.txt все могут читать, но изменять – только владелец.

Запись прав доступа с помощью чисел

Записывать права доступа можно не только с помощью букв. Если положительное значение права (когда доступ есть) обозначать единицей, а отрицательное (доступа нет) – нулем, то получим такую картину для файла, который могут все читать, но изменять только владелец:

Именно с помощью нулей и единиц хранятся данные в памяти компьютера, в том числе атрибуты доступа. Под права выделяются 9 бит в атрибутах файла, каждый бит хранит ноль или единицу.

Однако запись из девяти символов достаточно длинная. Чтобы ее сократить, используют преобразование двоичных чисел в восьмеричные. Триады нулей и единиц двоичной системы как раз составляют значения от 0 до 7 в восьмеричной системе счисления. Поэтому права доступа трех категорий (владельца, группы, остальных) можно выразить как три независимых друг от друга числа от 0 до 7-ми.

Не все числа имеют смысл. Трудно представить файл, который можно изменять, но нельзя прочитать. Часто используемые числа, которые полезно запомнить: 4 – только чтение, 5 – чтение и выполнение, 6 – чтение и запись, 7 – все права.

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

Каталог в Linux – это особый тип файла, смысловым содержанием которого является список других файлов.

Каталоги имеют те же биты прав, что и остальные файлы. Однако то, что эти права означают, в случае каталогов накладывает определенную специфику.

Право на чтение в случае каталога означает лишь возможность узнавать список содержащихся в нем файлов. При этом что-то узнать о свойствах файлов (размере, датах, правах) не получится.

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

Однако право на выполнение для каталога не дает права изменять имена файлов в этом каталоге. Ведь таким образом мы меняли бы данные самого каталога, а для этого нужно право на изменение самого каталога.

Если для каталога установлено только право на исполнение, то его содержимое просматривать нельзя. Можно лишь выполнять поиск файлов и обращаться к известным файлам.

На скрине создается каталог и в нем файл. С помощью команды chmod (рассматривается в следующем уроке) у каталога убираются права на чтение и запись для всех. После этого мы не можем просматривать его содержимое с помощью команды ls. Однако можем обращаться к находящемуся в нем файлу. Также можно перейти в каталог, то есть сделать его текущим (на скрине не показано).

Если каталог можно изменять (право на запись), то можно изменять состав файлов в нем, то есть можно удалять, переименовывать файлы, создавать новые. Причем все это возможно даже с файлами, доступ к которым запрещен для данной категории. Это создает дополнительную опасность, которая "лечится" вводом для каталогов дополнительного t-бита. При его наличии пользователь может выполнять файловые операции только со своими файлами.

Отметим пару вытекающих из вышесказанного особенностей:

Доступ к конкретному файлу зависит от наличия доступа на исполнение к каталогам на протяжении всего пути.

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

Курс с ответами к заданиям и дополнительными уроками:
android-приложение, pdf-версия.

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

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

Просмотр прав доступа на файлы и каталоги в Linux.

Прежде, чем двигаться далее, советую прочитать первую статью (если Вы этого не сделали, конечно) данного цикла про навигацию в терминале.

Для статьи я создал несколько файлов и каталогов в домашней папке.

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

Просмотр прав доступа на файлы и каталоги в Linux

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

Слева отображены права доступа на файл и директорию вида:

Чуть ниже подробно разберём это "непонятную" надпись, а пока двигаемся дальше.

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

Вот как это выглядит:

Просмотр прав доступа на файлы и каталоги в Linux

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

Выглядит это следующим образом:

Просмотр прав доступа на файлы и каталоги в Linux

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

либо ввести каталог:

Выглядит это следующим образом:

Просмотр прав доступа на файлы и каталоги в Linux

Расшифровка "символьной формы" прав доступа на каталоги и файлы в Linux.

Будем использовать в качестве примера в этом пункте.

Это символьная форма прав доступа в Linux. Давайте разберем её подробно.

Первый символ обозначает тип данных.

Данный символ может быть следующим:

В большинстве случаев это будет:

- обычный файл;
d директория/каталог/папка (directory);
l символическая ссылка (link).

Но может быть следующим:

b файл блочного устройства (block);
c файл символьного устройства;
s доменное гнездо (socket);
p именованный канал (pipe).

Следовательно, в нашем случае это директория (каталог, папка).

Следующие 9 символов обозначают права доступа.

Данные 9 символов состоят из трех групп:

  • Первая группа из трех символов обозначает права доступа владельца файла или директории (u - user).
  • Вторая группа из трех символов обозначает права доступа на файл или директорию для системной группы (g - group).
  • Третья группа из трех символов обозначает права доступа на файл или директорию для всех остальных (o - other).

У этих трёх групп одинаковая комбинация символов, то есть:

Что же они обозначают?

Очень легко запомнить:

r read, то есть, право доступа на чтение файла или директории.
w write, то есть, право на изменение и удаление файла или директории.
x eXecute, то есть, право на запуск файла как программы или вход в директорию.

Всегда располагаются в таком порядке:

Если вместо какого-то символа идёт тире (минус), к примеру:

то это значит, что отсутствуют права на изменение и удаление файла или директории.

то это обозначает, что отсутствуют права на изменение и запуск файла или директории. Доступен только просмотр.

Таким образом, из нашего примера:

Как видите, ничего сложного нет.

Определение владельца и группы файла или директории.

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

Те же самые команды из первого пункта:

Определение владельца и группы файла или директории

Как видно на скриншоте:

  • в третей колонке идет имя владельца файла;
  • в четвертой колонке идет название группы.

Следовательно, если пользователь не владелец файла, но входит в группу, то у него будут права на файл или директорию этой самой группы.

В Nautilus (файловом менеджере Ubuntu), можно нажать правой кнопкой мыши на файле, открыть свойства, перейти на вкладку "Права" и увидеть:

Определение владельца и группы файла или директории

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

Подробно разобрали просмотр прав доступа на файлы и каталоги Linux.

Теперь приступим к их изменению в терминале.

Изменение прав доступа на файлы и каталоги в Linux в символьном режиме.

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

Вместо persons нужно использовать совокупность символов или один из:

u user, пользователь, владелец файла или директории.
g group, группа файла или директории.
o other, все другие.
a all, то есть, все вместе взятые - владелец, группа и все остальные.

Этот символ обозначает субъект, которому будут назначены, удалены или изменены права.

Вместо Operator, может быть один из следующих символов:

+ "плюс", добавляем нужные права.
- "минус", удаляем нужные права.
= "равно", устанавливаем нужные права.

Этот символ обозначает оператор, от которого зависит, будут ли добавлены, удалены или установлены нужные права, которые последуют за оператором.

Вместо Rights перечисляем символы прав доступа:

r read - чтение.
w write - запись.
x eXecute - выполнение.

Важно замечание.

Здесь идёт цепочка из трёх перечисленных символов, но в определённом порядке rwx. Но при этом, не нужно указывать тире для пропуска. Примеры: rwx, rw, wx, rx, r, w, x.

Вместо имяфайлаилиимядиректории указываем путь к файлу или директории.

Для рекурсивного изменения прав в каталоге используется параметр -R.

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

Важно.

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

Приступим к практике. Разберём примеры.

1. Убираем права для группы на изменение файла:

Убираем права для группы на изменение файла

2. Убираем права на чтение у группы и всех остальных:

Убираем права для группы на изменение файла

3. Добавим для группы права на чтение и изменение:

Убираем права для группы на изменение файла

4. Изменим рекурсивно права на файлы и директории внутри нужной директории. Отменим, к примеру, все права у остальных пользователей и групп:

Убираем права для группы на изменение файла

Вы, наверное, зачастую видели команду:

Это значит, что мы даём права на выполнение данного файла как программы всем.

Это аналогично следующим командам:

То есть, если мы хотим изменить права файл или директорию для всех, мы можем не писать кому. Просто оператор и права.

Изменение прав доступа на файлы и каталоги в абсолютном режиме.

Есть более простой способ изменение прав доступа на файлы и каталоги в Linux. Это изменение прав доступа в числовом представлении.

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

Вы их выполняли в терминале. А многие из вас задумывались, что это за "магические цифры". Но на самом деле никакая это не магия.

Давайте разберем, что же значат эти цифры.

Итак, у нас есть комбинация прав доступа на директорию:

А теперь делим на группы:

Теперь преобразуем в двоичном виде наши права доступа:

  • если есть символ, то это 1.
  • если тире (пропуск), то это 0.

Следовательно, наша комбинация будет выглядеть следующим образом:

А теперь переведем из двоичной в восьмеричную систему исчисления:

Вот и получили наше "магическое" число 775.

Более проще запомнить:

r это 4
w это 2
x это 1

Каждая цифра обозначает определенную группу:

  • Первая цифра - права для владельца,
  • вторая цифра - права для группы,
  • третья цифра - права для остальных.

Просто прибавляем цифры. К примеру, нам нужно чтение r и изменение w. Прибавляем 4+2, получаем 6.

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

Изменение прав доступа на файлы и каталоги в абсолютном режиме

Вот так меняются права в абсолютном (числовом) режиме.

Изменение владельца и группы файла или каталога.

Для изменения владельца и группы файла или каталога есть команда chown.

Используется следующий шаблон выполнения данной команды chown:

Если хотим изменить только группу, то шаблон следующий:

Если хотим изменить только владельца, то шаблон следующий:

В принципе, ничего сложного.

Чтобы узнать имя текущего пользователя, используется команда:

Чтобы узнать в каких группах состоит текущий пользователь:

Получить список пользователей:

Получить группы конкретного пользователя (вместо user_name ввести имя пользователя):

chmod-права

Давайте заберем что такое CHMOD права на файлы , как с ними работать и как разбираться с атрибутами файлов CHMOD.

При установке различных скриптов или движков сайтов, пользователи сталкиваются с таким понятием как установка прав доступа на файлы CHMOD.

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

Например при установке того же магазина ОрдерМастер 2 нужно прописывать права для отдельных каталогов и файлов. Ну установив нужные права мы рискуем работоспособностью скрипта и ошибки полезут как миленькие!

Что такое CHMOD права и как их изменять, попробую объяснить в этой статье.

CHMOD права. Общие понятия.

Права CHMOD доступа — это атрибуты файла или папки, которые указывают серверу, кто и что может делать с соответствующим файлом или папкой. Большинство серверов работает на базе Unix-систем, поэтому рассмотрим установку прав доступа именно для них.

В системах Unix все пользователи разделяются на три группы:

Теперь разберем как все работает. Постараемся не лезть в дебри и показать все на пальцах!

Внимание, если Вы не собираетесь стать программистом и Вам просто нужно установить скрипт и Вы хотите знать как управлять правами доступа к файлам то пропустите этот раздел и переходите к разделу Как устанавливать права CHMOD.

Самым дотошным же читать дальше!

Когда вы соединяетесь с сервером, он определяет, к какой группе вы относитесь.

После определения группы, пользователь получает права на действия с объектами. В Unix есть только три основных права действия над файлом — читать файл или просматривать каталог (Read); изменять файл или папку, записывать в неё или удалять (Write); запускать файл (eXecute).

Исходя из этого, в оборот были введены символы r, w и x, означающие, соответственно, read, write и execute. Чтобы распределить права для групп (owner, group, public), используются цифровые обозначения: 4 = read (право на чтение) 2 = write (право на запись) 1 = execute (право на выполнение)

Простым сложением цифр можно добиться установления прав на совокупность действий. Например, 3 (2+1) разрешает запись и выполнение файла (каталога); 5 (4+1) разрешает чтение и выполнение; 6 (4+2) разрешает чтение и запись; 7 (4+2+1) устанавливает право чтения, записи и выполнения. Т.е. всего семь возможных вариантов: 7 = read, write & execute 6 = read & write 5 = read & execute 4 = read 3 = write & execute 2 = write 1 = execute

Как устанавливать права CHMOD.

Разберем как устанавливать права CHMOD и какие инструменты для этого использовать. Сначала посмотрим как это делается в самом популярном файл-менеджере FileZilla

Чтоб изменить права CHMOD любого файла нужно кликнуть по нему правой кнопкой мышки и назначить их в открывшемся окошке.
Установка CHMOD в FileZilla

chmod права 1

Прилагаю Вам два видео-урока как работать с файловым менеджером FileZilla

Установка CHMOD в TotalCommander

Некоторые для работы используют старый добрый TotalCommander. В целом работа не особо отличается.

1. Соединяемся с сервером через FTP

2. Отмечаем нужный файл или папку

3. Кликаем в панели поле Файлы и выбираем-Изменить атрибуты

chmod права 2

В открывшемся окне назначаем нужные нам права CHMOD

chmod права 3

Из практики работы могу написать что полные права на файлы-это 666 на каталоги-777 назначают в редких случаях.

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

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

Удачи и хорошего продолжения дня!

Федор Ашифин

Федор Ашифин.

Создание проектов под ключ любой сложности!
Доводка сырых сайтов до кондиции
Разработка уникального дизайна под заказ
Верстка и натяжка на популярные ситемы: WordPress, MODX, OpenCart
Обращайтесь, сделаем качественно и красиво! Skype: ashifin Viber/Mob: V+380503613708 Как заказать сайт?

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

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

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

Согласитесь, грех не воспользоваться возможностью серьезно усилить степень защиты вашего веб-ресурса. Конечно, в этом случае редактирование некоторых файлов будет занимать немного больше времени, но тут уж приходится выбирать: либо оптимизация безопасности системы, либо. Ниже я постараюсь систематизировать информацию по chmod, потому что здесь есть несколько нюансов, которые необходимо знать вебмастеру. Итак, начнем.

Chmod для пользователей и права доступа

Для каждой группы пользователей определены свои права доступа. При попытке соединения веб-сервер определяет, к какой группе отнести того или иного юзера. Все они разделяются на:

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

  • r (read) — чтение (возможность просмотра содержания);
  • w (write) — запись, перезапись (изменение содержимого), но не удаление;
  • x (eXutive) — исполнение (например, запуск программного файла).

Права доступа к папкам (директориям, или каталогам) дают совершать такие действия:

  • r — чтение (можно получить список имен объектов, входящих в каталог, но не их атрибутов, то есть, невозможен просмотр размеров файлов, прав доступа, имени владельца и т.д.);
  • w — изменение содержимого (создание, переименование и удаление объектов в директории, причем, удалять можно даже те файлы, право на запись для которых не установлено);
  • x — доступ в каталог (особенность здесь такая, что если даже вы имеете все необходимые права на файл, который расположен "в глубине директорий", но не имеете права доступа хотя бы к одной поддиректории на пути к этому объекту, то не сможете добраться до него), включая возможность просмотра атрибутов (свойств) файлов.

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

  • первым идет комплекс прав для владельца (u);
  • далее для группы (g);
  • и в конце — для всех остальных (o).

Итак, в соответствии с выше представленной информацией существует три группы пользователей и три категории действий с объектами. Чтобы не запутаться, попробуем систематизировать эти данные в форме таблиц. Для начала отметим отличия между правами для файлов и каталогов:

Тип прав Для файла Для папки
r Чтение (просмотр содержания) Изучение имен файлов, входящих в директорию
w Запись (перезапись) Добавление, переименование и удаление файлов в каталоге
x Выполнение файлика Доступ к файлам каталога и чтение их атрибутов

Далее рассмотрим разные сочетания прав (на файлы и папки):

Тип прав для пользователей (rwx) Для файла Для папки
--- Все запрещено Все запрещено
--x Выполнение Чтение атрибутов файлов
-w- Запись (перезапись) Все запрещено
-wx Запись и выполнение Разрешено все, кроме получения имен файлов, находящихся в папке
r-- Чтение содержимого Чтение имен файлов
r-x Чтение и выполнение Чтение имен файлов и их атрибутов
rw- Чтение и запись Чтение имен файлов
rwx Все возможные права Все возможные права

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

Права доступа в цифрах: chmod (777, 755, 655, 444, 400)

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

  • r (чтение) — 4
  • w (запись) — 2
  • x (исполнение) — 1
  • - (нет прав) — 0

В качестве резюме представлю сводную таблицу с правами доступа chmod в буквах и цифрах:

chmod Файлы Папки (директории)
Выражен. в цифрах Выражен. в символах
0 --- Запрещены все действия Запрещены все действия
1 --x Выполнение Чтение атрибутов файлов*
2 -w- Запись Запрещены все действия
3 (2 + 1) -wx Запись и выполнение Разрешено все, кроме доступа к именам файлов**
4 r-- Чтение содержимого Чтение имен файлов
5 (4 + 1) r-x Чтение и выполнение Чтение имен файлов и их атрибутов***
6 (4 + 2) rw- Чтение и запись Чтение имен файлов
7 (4 + 2 +1) rwx Все разрешено Все разрешено

* — нет возможности получения имен файлов, а также их создания/переименования/удаления.

** — можно создавать/переименовывать/удалять файлы, но отсутствует доступ к их названиям.

*** — нельзя создавать/переименовывать/удалять файлы в директории.

Теперь представлю еще одну таблицу, которая отражает суммарные права chmod для абсолютно всех групп пользователей (user, group, others) в формате цифр:

chmod Владелец u (user) Член группы g (group) Другие пользователи 0 (others)
777 Чтение, запись, исполнение Чтение, запись, исполнение Чтение, запись, исполнение
776 Чтение, запись, исполнение Чтение, запись, исполнение Чтение, запись
775 Чтение, запись, исполнение Чтение, запись, исполнение Чтение, исполнение
774 Чтение, запись, исполнение Чтение, запись, исполнение Чтение
766 Чтение, запись, исполнение Чтение, запись Чтение, запись
755 Чтение, запись, исполнение Чтение, исполнение Чтение, исполнение
655 Чтение, запись Чтение, исполнение Чтение, исполнение
644 Чтение, запись Чтение Чтение
444 Чтение Чтение Чтение

Это основные комбинации, которые наиболее часто используются в работе вебмастера. Другие формируются по аналогии. Если вы являетесь администратором сайта, но работаете с проектом, не подсоединившись по FTP протоколу, вы также относитесь к группе "Остальные пользователи". В таком случае при работе с сайтом нужно учитывать последнюю цифру в значении chmod.

Ежели у вас простенький сайт с использованием HTML-страниц, то на сервере, где расположены его файлики, достаточно на каталоги иметь права 755, а на файлы, входящие в их состав, 644:

Владелец (user) имеет право читать и записывать файлы (исполнять запрещено), члены группы (group) и остальные (others) могут лишь их читать (rw-r--r--)

Владелец (user) вправе выполнять все действия, а группа и другие пользователи имеют доступ к директории, могут просматривать названия и атрибуты файликов, однако, не имеют прав их записывать, изменять названия и удалять (rwxr-xr-x)

Поэтому назначения прав Чмод на те или иные файлы необходимо дифференцировать. Если вы входите в управление вебсайтом по FTP, то можете производить любые действия, однако во многих случаях работаем со своим проектом происходит через браузер (веб-обозреватель).

А в этом случае могут возникнуть проблемы, если права слишком завышены, и, наоборот, если права доступа к тому или иному файлу (папке) занижены, то возрастает угроза безопасности. Посему на основании вышесказанного можно определить некоторые рекомендации по практическому применению chmod для современного сайта под управлением ЦМС:

Для каталогов, где постоянно происходит запись и стирание файлов (например, для папки кэширования)

Применительно к папкам, в которые постоянно записываются файлы, но не удаляются

Для файлов, куда необходимо время от времени добавлять запись (пример — файл .htaccess)

Для файлов, используемых только для чтения (.php, .html и др.)

Также рекомендую на папки, находящиеся в корне сайта, поставить код доступа Чмод 444.

Указание прав доступа для сайта с помощью ФТП клиента

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

Со своей стороны порекомендую ФТП менеджер (клиент) Файлзилла, который уже давно доказал свою надежность и безотказность в работе на протяжении длительного времени.



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

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