Вы пользователь Linux или веб-мастер, управляющий собственным веб-сайтом (который, вероятно, размещен на сервере Linux)? Рано или поздно вы попытаетесь загрузить файл или изменить документ и получите следующую ошибку: "У вас нет прав на загрузку файла в папку". После некоторого поиска в Google решение часто бывает так же просто, как установка разрешения файла на "775" или "777". Но что означает "777"? И почему это должно быть "7", а не "8" или "9"?
Понимание прав доступа к файлам
В системах Unix (включая Linux и macOS) есть механизм управления файлами, который определяет, кто может получить доступ к определенному файлу или папке и что они могут делать с этим файлом или папкой.
Механизм управления файлами состоит из двух частей: "Классы" и "Разрешения". Классы определяют, кто может получить доступ к файлу, а разрешения определяют, что пользователь может делать с этим файлом.
Есть три класса: владелец, группа и другие.
- Владелец обычно является создателем файла или папки. В 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.

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

Вы также можете изменить разрешения с помощью команды chmod
в Терминале. Короче говоря, "chmod 777" означает сделать файл доступным для чтения, записи и выполнения для всех.
chmod777/path/to/file
Надеюсь, эта статья помогла вам лучше понять права доступа к файлам в системах Unix и происхождение магического числа "777".
Теперь, когда вы освоили права доступа к файлам, вы можете узнать, как копировать и вставлять текст, файлы и папки в терминал Linux или использовать липкий бит для управления файлов в общих каталогах а>.
По теме:
Хорошо объяснил, я узнал несколько новых вещей и хочу знать, что вы сказали - когда вы устанавливаете разрешение "Чтение", к данным добавляется 4 бита. Что это за данные. Что это на самом деле.
было бы хорошо, если бы вы прокомментировали объяснение