Понимание прав доступа к файлам: что означает "Chmod 777"?

Если вы пользователь Linux или системный администратор, управляющий сервером Linux, вы столкнетесь с ошибкой “У вас нет прав для загрузки файла в папку”. После некоторых поисков в Google решение часто оказывается таким же простым, как установка прав доступа к файлу на “775” или “777”. В технических терминах вас попросят “chmod 777 файл”. Но что означает “777”? И почему это должно быть “7”, а не “8” или “9”?
В этом посте мы покажем вам, как лучше понять права доступа к файлам, включая то, что означает chmod 777.
Также читайте: Как легко переименовывать файлы в Linux
Понимание прав доступа к файлам
Системы Unix (включая Linux и macOS) имеют механизм управления файлами, который определяет, кто может получить доступ к конкретному файлу или папке и что они могут с ним делать.
Есть две части, которые нужно учитывать:
Классы. Это определяет, кто может получить доступ к файлу. Существует три обозначения: Владелец, Группа (которая имеет одинаковые права) и Другие.
- Владелец обычно является создателем файла или папки. В Linux любые файлы или папки, которые вы создаете в своей домашней директории, обычно принадлежат вам, если вы специально не измените право собственности.
- Группа содержит группу пользователей, которые имеют одинаковые права и привилегии.
- Другие означают широкую публику.

Права. Эти права определяют, что пользователь может делать с файлом. Вы можете либо читать, записывать, либо выполнять файл, и вы можете установить почти любую комбинацию из этих трех прав.
- Чтение. Вы не можете изменять содержимое файла никаким образом. Когда это применяется к папке, вы можете только просматривать файлы внутри этой папки; вы не можете удалять или изменять файлы никаким образом или добавлять больше файлов в папку.
- Запись. Вы можете изменять файл. Если у вас есть доступ “записи” к папке, вы можете удалять и добавлять файлы в эту папку.
- Выполнение. Выполнение в основном используется, когда вам нужно запустить файл, и чаще всего используется, когда вам нужно запустить скрипт.

Используя Классы в сочетании с Правами, вы можете контролировать, кто имеет доступ к файлу и какие действия они могут выполнять.
Владелец файла часто будет иметь все три права (чтение, запись и выполнение). Если вы не можете загрузить файл на сервер, это часто связано с несоответствием прав.
Объяснение прав доступа к файлу 777
Как только вы получите базовое понимание Классов и Прав, вы сможете начать понимать такие числа, как “777” и “775”.
Каждый файл и папка содержат 8-битные данные, которые контролируют права доступа. В своей базовой двоичной форме 000 означает, что никакие права не предоставлены.
Когда вы устанавливаете право “Чтение”, это добавляет 4 бита к данным, делая их “100” (в двоичном формате) или “4” в обычном десятичном формате. Установка права “Запись” добавляет 2 бита к данным, делая их “010” и “2” в десятичной форме. Наконец, установка права “Выполнение” добавляет 1 бит к данным, что приведет к “001” или “1” в десятичной форме. Короче:
- Чтение эквивалентно “4”.
- Запись эквивалентна “2”.
- Выполнение эквивалентно “1”.
В двух словах, установка прав — это базовая математика. Например, чтобы установить права “Чтение и Запись”, мы комбинируем 4 и 2, чтобы получить 6. Конечно, есть и другие перестановки:
- 0: Нет прав
- 1: Выполнение
- 2: Запись
- 3: Запись и Выполнение
- 4: Чтение
- 5: Чтение и Выполнение
- 6: Чтение и Запись
- 7: Чтение, Запись и Выполнение
Полный набор прав доступа к файлам назначает первую цифру Владелецу, вторую цифру Группе и третью Другим. Вот некоторые из часто используемых прав:
- 755. Этот набор прав часто используется веб-серверами. Владелец имеет все права на чтение, запись и выполнение. Все остальные могут читать и выполнять, но не могут вносить изменения в файл.
- 644. Только владелец может читать и записывать. Все остальные могут только читать. Никто не может выполнять этот файл.
- 655. Только владелец может читать и записывать и не может выполнять файл. Все остальные могут читать и выполнять и не могут изменять файл.
Что касается 777, это означает, что каждый пользователь может Читать, Записывать и Выполнять. Поскольку это предоставляет полные права, его следует использовать с осторожностью. Однако в некоторых случаях вам нужно будет установить права 777, прежде чем вы сможете загрузить любой файл на сервер.
Установка прав доступа к файлам в командной строке
В Linux вы можете легко изменить права доступа к файлу, щелкнув правой кнопкой мыши файл или папку и выбрав “Свойства”. Это откроет вкладку Права, где вы можете внести изменения.
В отличие от этого, вы можете изменить настройки прав на macOS, щелкнув правой кнопкой мыши и выбрав “Получить информацию”. Здесь вы можете развернуть раздел “Общие и права” и внести изменения.

Чтобы внести изменения, выберите соответствующие права в разделе Привилегии и выберите что-то более подходящее.

Тем не менее, это не единственный способ изменить права доступа к файлам. Давайте объясним это более подробно далее.
Изменение прав доступа к файлам с помощью chmod 777
Если вы более знакомы с Терминалом и Командной строкой, вы также можете изменить права доступа здесь.
Команда chmod позволяет вам “изменить режим” — еще один способ описать права доступа. Для этого откройте Терминал и введите следующее:
chmod777/path/to/fileКороче, chmod 777 объединяет две концепции, которые мы представили на протяжении всей этой статьи. Это означает сделать файл доступным для чтения, записи и выполнения для всех, кто имеет доступ. Таким образом, это мощный и потенциально разрушительный для системы инструмент — поэтому с ним следует обращаться с осторожностью.
В заключение
Права доступа к файлам могут стать для вас препятствием, если они не установлены правильно. Это сделано намеренно, так как заблокированная система не может быть скомпрометирована. Тем не менее, если вы хотите получить доступ к файлу на вашей системе или сервере, изучение того, как изменить определенные права, — это полезный навык.
В двух словах, chmod 777 — это команда, которую вы будете использовать в Терминале, чтобы сделать файл или папку доступными для всех. Вы должны использовать ее в редких случаях и вернуться к более ограниченному набору прав, как только закончите.
Если вы хотите узнать, что еще может сделать Терминал, ознакомьтесь с нашим постом о том, как копировать и вставлять из командной строки. Вам нужно управлять правами доступа к файлам, и поможет ли вам этот пост? Дайте нам знать в комментариях ниже!