Что означает chmod 777

Команда Linux Chmod

Вы пытаетесь исправить проблему с правами доступа на вашем веб-сервере и нашли в интернете информацию о необходимости рекурсивного выполнения команды chmod 777 для веб-каталога. Прежде чем это сделать, убедитесь, что вы понимаете, что делает chmod -R 777 и почему никогда не следует устанавливать права доступа 777.

В этой статье объясняется модель прав доступа Linux и значение номеров прав доступа.

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

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

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

  • Владелец файла.
  • Члены группы.
  • Другие (все остальные).

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

  • Разрешение на чтение.
    • Файл доступен для чтения. Например, если установлено разрешение на чтение, пользователь может открыть файл в текстовом редакторе или просмотреть его содержимое в терминале.
    • Содержимое каталога можно просмотреть. Пользователь может просмотреть список файлов внутри каталога с помощью команды ls .
  • Разрешение на запись.
  • Разрешение на выполнение.
    • Файл может быть выполнен. Пользователь может запустить файл (скрипт) из командной строки.
    • Войти в каталог можно с помощью команды cd .

Информацию о правах доступа к файлам можно получить с помощью команды ls . Вот пример:

 ls -l filename.txt
 -rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |[-][-][-]- [------] [---] | | | | | | | | | | | | | +-----------> 7. Group | | | | | +-------------------> 6. Owner | | | | +--------------------------> 5. Alternate Access Method | | | +----------------------------> 4. Others Permissions | | +-------------------------------> 3. Group Permissions | +----------------------------------> 2. Owner Permissions +------------------------------------> 1. File Type

Первый символ указывает тип файла. Это может быть обычный файл ( - ), каталог ( d ), символическая ссылка ( l ) или любой другой специальный тип файла.

Следующие девять символов представляют права доступа к файлу, разделённые на три триплета по три символа в каждом. Первый триплет показывает права владельца, второй — права группы, а последний — права всех остальных.

Номер разрешения

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

Номер разрешения может состоять из трех или четырех цифр в диапазоне от 0 до 7.

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

Разрешения на запись, чтение и выполнение имеют следующее числовое значение:

  • r (чтение) = 4
  • w (писать) = 2
  • x (выполнить) = 1
  • нет разрешений = 0

Разряд разрешений определенного класса пользователей представляет собой сумму значений разрешений для этого класса.

Каждая цифра номера разрешения может быть суммой 4, 2, 1 и 0:

  • 0 (0+0+0) – Нет разрешения.
  • 1 (0+0+1) — Только разрешение на выполнение.
  • 2 (0+2+0) – Разрешение только на запись.
  • 3 (0+2+1) – разрешения на запись и выполнение.
  • 4 (4+0+0) – Разрешение только на чтение.
  • 5 (4+0+1) – Разрешение на чтение и выполнение.
  • 6 (4+2+0) – Разрешения на чтение и запись.
  • 7 (4+2+1) — разрешение на чтение, запись и выполнение.

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

  • Владелец: rwx=4+2+1=7
  • Группа: rx=4+0+1=5
  • Другие: rx=0+0+0=0

При использовании четырехзначного числа первая цифра имеет следующее значение:

  • setuid = 4
  • setgid = 2
  • липкий = 1
  • без изменений = 0

Следующие три цифры имеют то же значение, что и при использовании трёхзначного числа. Если первая цифра — 0, её можно опустить, а режим можно представить тремя цифрами. Например, числовой режим 0755 совпадает с 755 .

Чтобы просмотреть права доступа к файлу в числовом (восьмеричном) формате, можно использовать команду stat :

 stat -c "%a" filename
 644

Никогда не используйте chmod 777

Установка прав доступа 777 ( chmod 777 ) для файла или каталога означает, что он будет доступен для чтения, записи и исполнения всем пользователям, что может представлять огромную угрозу безопасности.

Например, если вы рекурсивно измените права доступа ко всем файлам и подкаталогам в каталоге /var/www на 777 , любой пользователь системы сможет создавать, удалять или изменять файлы в этом каталоге.

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

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

Предположим, на вашем сервере есть PHP-приложение, работающее от имени пользователя «linuxize». Чтобы установить правильные права доступа, выполните следующую команду:

 chown -R linuxize: /var/www find /var/www -type d -exec chmod 755 {} ; find /var/www -type f -exec chmod 644 {} ;

Изменять права доступа к файлу может только пользователь root, владелец файла или пользователь с привилегиями sudo. Будьте особенно осторожны при использовании chmod , особенно при рекурсивном изменении прав доступа.

Заключение

Если вы управляете системой Linux, крайне важно знать, как работают разрешения Linux.

Никогда не устанавливайте права доступа 777 ( rwxrwxrwx ) для файлов и каталогов. 777 означает, что каждый может делать с этими файлами что угодно.

Если у вас есть вопросы, не стесняйтесь оставлять комментарии.

терминал chmod

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *