Что такое разрешения chmod 7777 в Linux

12 set 2022 3 min di lettura
Что такое разрешения chmod 7777 в Linux
Indice dei contenuti

Введение

Если вы пытаетесь решить проблему с разрешениями на своем веб-сервере, перед рекурсивным изменением разрешений на chmod 777 веб-каталога убедитесь, что вы понимаете, что делает chmod -R 777 и почему вам никогда не следует устанавливать разрешения на 777.

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

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

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

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

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

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

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

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

ls -l filename.txt
-rw-r--r-- 12 noviello users 11.0K Apr 7 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

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

  • сетуид = 4
  • setgid = 2
  • липкий = 1
  • без изменений = 0

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

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

stat -c "%a" filename
644

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

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

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

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

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

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

chown -R noviello: /var/www

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

Вывод

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

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

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.