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