Изменение прав
100%

Разрешения · Урок 2

Изменение прав

Узнайте, как изменять биты прав Linux с помощью символических и восьмеричных режимов chmod.

Команда chmod изменяет биты режима файлов и каталогов. Обычно это может сделать только владелец файла или процесс с необходимыми привилегиями. Проверяйте текущий режим через ls -l до и после запуска chmod.

Символический режим

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

  • u выбирает класс владельца.
  • g выбирает класс группы.
  • o выбирает класс остальных.
  • a выбирает все три класса.
  • + добавляет права, - удаляет их, а = точно задаёт выбранный класс.

Например, добавьте право выполнения владельцу:

$ chmod u+x myfile

Удалите право записи у группы:

$ chmod g-w myfile

Добавьте право записи владельцу и группе:

$ chmod ug+w myfile

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

$ chmod u=rw,g=r,o= myfile

Если класс опущен, как в chmod +x myfile, маска процесса umask влияет на изменяемые классы. Явное указание класса облегчает проверку требуемого результата.

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

Восьмеричный режим

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

  • 4 для чтения
  • 2 для записи
  • 1 для выполнения
  • 0 при отсутствии прав

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

$ chmod 755 myfile

Режим 755 раскрывается следующим образом:

  • Для владельца 7 равно 4 + 2 + 1, то есть rwx.
  • Для группы 5 равно 4 + 1, то есть r-x.
  • Для остальных 5 равно 4 + 1, то есть r-x.

В отличие от символических операций + и -, восьмеричный режим задаёт полный набор обычных прав. Необязательная начальная цифра специальных битов режима рассматривается в последующем уроке.

Какое восьмеричное значение обозначает право чтения?

Какие обычные права задаёт chmod 640 report?

Безопасное применение изменений

Предоставляйте только тот доступ, который действительно нужен пользователям и службам. Не используйте chmod 777 как универсальный способ устранения неполадок: он даёт чтение, запись и выполнение каждому классу, часто повышая риск и не решая проблем владельца, прохода по каталогам, ACL или политики службы.

Рекурсивные изменения требуют особой осторожности. Предварительно просмотрите целевое дерево, учтите символические ссылки и подключённые файловые системы и протестируйте небольшой участок до использования chmod -R. После изменения проверьте результирующий режим, а не предполагайте, что команда затронула требуемые объекты.

Почему chmod 777 обычно является плохим универсальным решением проблемы доступа?

Урок завершён

Вы завершили Изменение прав

Теперь вы можете осознанно изменять обычные биты режима Linux выражениями chmod.

  • Используйте символический режим для точечных добавлений, удалений и назначений.

  • Составляйте восьмеричные цифры из чтения 4, записи 2 и выполнения 1.

  • Читайте восьмеричные классы в порядке владелец, группа, остальные.

  • Проверяйте изменения и предоставляйте только минимально необходимые права.

Сохраните прогресс

Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.

Создать бесплатный аккаунт
Следующий Урок
Назад к Разрешения