Кто отказывается от многого, может многое себе позволить (Ж. Шардон).

5 мин для чтенияЧто означает chmod 777

FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
9 марта 2020
Что означает chmod 777
Вы пытаетесь исправить проблему с правами доступа к своему веб-серверу и нашли информацию в Интернете, где говорят, что вам нужно рекурсивно установить chmod 777 на веб-каталог. Перед этим убедитесь, что вы понимаете, что делает chmod -R 777 и почему никогда не следует устанавливать разрешения на 777.

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

 

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

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

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

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

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

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

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

ls -l filename.txt
-rw-r--r-- 12 andreyex 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

 

Читать  Linux для сетевых инженеров. Как написать сценарий Bash

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

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

 

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

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

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

Когда используется 3-значное число, первая цифра представляет права владельца файла, вторая – группу файла, а последняя – всех остальных пользователей.

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

  • 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

 

Когда используется 4-значный номер, первая цифра имеет следующее значение:

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

 

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

Читать  Основные команды Linux

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

stat -c "%a" filename

 

644

 

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

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

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

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

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

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

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

 

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

 

Вывод

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

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

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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

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

Читайте также

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close