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

Разрешения Chmod Linux Mac

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

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

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

Механизм управления файлами состоит из двух частей: "Классы" и "Разрешения". Классы определяют, кто может получить доступ к файлу, а разрешения определяют, что пользователь может делать с этим файлом.

Есть три класса: владелец, группа и другие.

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

Что касается разрешений, есть три типа действий, которые вы можете выполнять с файлом или папкой:

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

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

Владелец файла обычно имеет все три разрешения (чтение, запись и выполнение). Если вы не являетесь владельцем файла или папки, вам, как правило, придется изменить Владение на свое имя или изменить разрешения Группы или Других на чтение, запись и / или выполнение.

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

777: Что в номере?

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

Каждый файл и папка содержат 8-битные данные, управляющие разрешениями. В своей базовой двоичной форме "000" означает, что разрешения в любой форме не предоставляются.

Когда вы устанавливаете разрешение "Чтение", к данным добавляется 4 бита, в результате чего получается "100" (в двоичном формате) или "4" в обычном десятичном формате. При установке разрешения "Запись" к данным добавляются 2 бита, в результате чего получается "010" и "2" в десятичной форме. Наконец, установка разрешения "Выполнить" добавляет к данным 1 бит, что приводит к "001" или "1" в десятичной форме. Коротко:

  • Чтение эквивалентно "4".
  • Запись эквивалентна "2".
  • Выполнить эквивалентно "1."

Когда мы хотим установить разрешения, мы просто добавляем число. Например, чтобы установить разрешения на "чтение и запись", мы используем "6" (4 + 2) для разрешения. Для чтения, записи и выполнения мы будем использовать "7" (4 + 2 + 1) для разрешения.

Вот другая перестановка:

0 - нет разрешения
1 - выполнить
2 - записать
3 - записать и выполнить
4 - прочитать
5 - прочитать и выполнить
6 - прочитать и записать
7 - читать, писать и выполнять

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

Что это означает для "777"? Первая цифра присваивается Владельцу, вторая цифра - Группе, а третья цифра - Другим. Если файл имеет разрешение "777", то каждый может читать, записывать и выполнять файл.

Вот некоторые из наиболее часто используемых разрешений:

  • 755. Этот набор разрешений обычно используется веб-серверами. Владелец имеет все права на чтение, запись и выполнение. Все остальные могут читать и выполнять, но не могут вносить изменения в файл.
  • 777. Каждый может читать, писать и выполнять. На веб-сервере не рекомендуется использовать разрешение "777" для ваших файлов и папок, поскольку это позволяет кому-либо добавлять вредоносный код на ваш сервер. Однако в некоторых случаях вам потребуется установить права доступа 777, прежде чем вы сможете загружать какой-либо файл на сервер, например: загрузка изображений в WordPress.
  • 644. Только владелец может читать и писать. Все остальные могут только читать. Никто не может выполнить этот файл.
  • 655. Только владелец может читать и писать и не может выполнять файл. Все остальные могут читать и выполнять, но не могут изменять файл.

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

В Linux вы можете легко изменить права доступа к файлу, щелкнув правой кнопкой мыши файл или папку и выбрав "Свойства". Это откроет вкладку "Разрешение", где вы можете изменить права доступа к файлу.

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

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

Чтобы изменить эти разрешения, щелкните любую из маленьких стрелок и выберите "Чтение и запись" или "Только чтение".

Вы можете изменить права доступа к файлу в macOS '

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

Надеюсь, эта статья помогла вам лучше понять права доступа к файлам в системах Unix и происхождение магического числа "777".

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

По теме:

Один комментарий

  1. Хорошо объяснил, я узнал несколько новых вещей и хочу знать, что вы сказали - когда вы устанавливаете разрешение "Чтение", к данным добавляется 4 бита. Что это за данные. Что это на самом деле.

    было бы хорошо, если бы вы прокомментировали объяснение