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

Chmod Permissions Linux Macos

Если вы пользователь Linux или системный администратор, управляющий сервером Linux, вы столкнетесь с ошибкой “У вас нет прав для загрузки файла в папку”. После некоторых поисков в Google решение часто оказывается таким же простым, как установка прав доступа к файлу на “775” или “777”. В технических терминах вас попросят “chmod 777 файл”. Но что означает “777”? И почему это должно быть “7”, а не “8” или “9”?

В этом посте мы покажем вам, как лучше понять права доступа к файлам, включая то, что означает chmod 777.

Также читайте: Как легко переименовывать файлы в Linux

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

Системы Unix (включая Linux и macOS) имеют механизм управления файлами, который определяет, кто может получить доступ к конкретному файлу или папке и что они могут с ним делать.

Есть две части, которые нужно учитывать:

Классы. Это определяет, кто может получить доступ к файлу. Существует три обозначения: Владелец, Группа (которая имеет одинаковые права) и Другие.

  • Владелец обычно является создателем файла или папки. В Linux любые файлы или папки, которые вы создаете в своей домашней директории, обычно принадлежат вам, если вы специально не измените право собственности.
  • Группа содержит группу пользователей, которые имеют одинаковые права и привилегии.
  • Другие означают широкую публику.

Вы можете просмотреть права доступа к файлам в 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, щелкнув правой кнопкой мыши и выбрав “Получить информацию”. Здесь вы можете развернуть раздел “Общие и права” и внести изменения.

Панель Получить информацию, показывающая права.

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

Установка новых прав доступа к файлу в macOS.

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

Изменение прав доступа к файлам с помощью chmod 777

Если вы более знакомы с Терминалом и Командной строкой, вы также можете изменить права доступа здесь.

Команда chmod позволяет вам “изменить режим” — еще один способ описать права доступа. Для этого откройте Терминал и введите следующее:

chmod777/path/to/file

Короче, chmod 777 объединяет две концепции, которые мы представили на протяжении всей этой статьи. Это означает сделать файл доступным для чтения, записи и выполнения для всех, кто имеет доступ. Таким образом, это мощный и потенциально разрушительный для системы инструмент — поэтому с ним следует обращаться с осторожностью.

В заключение

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

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

Если вы хотите узнать, что еще может сделать Терминал, ознакомьтесь с нашим постом о том, как копировать и вставлять из командной строки. Вам нужно управлять правами доступа к файлам, и поможет ли вам этот пост? Дайте нам знать в комментариях ниже!