Команды Linux: chmod

Краткое руководство поchmodкоманда, используемая для изменения режима файла

Каждый файл в операционных системах Linux / macOS (и в системах UNIX в целом) имеет 3 разрешения: чтение, запись, выполнение.

Зайдите в папку и запуститеls -alкоманда.

Странные строки, которые вы видите в каждой строке файла, напримерdrwxr-xr-x, определите права доступа к файлу или папке.

Давайте рассмотрим это.

Первая буква указывает на тип файла:

  • -означает, что это нормальный файл
  • dозначает, что это каталог
  • lозначает, что это ссылка

Тогда у вас есть 3 набора значений:

  • Первый набор представляет разрешениявладелецфайла
  • Второй набор представляет собой разрешения членовгруппафайл связан с
  • Третий набор представляет разрешениявсе остальные

Эти наборы состоят из 3 значений.rwxозначает, что конкретныйперсонаимеет доступ на чтение, запись и выполнение. Все, что удаляется, заменяется на-, который позволяет формировать различные комбинации значений и относительных разрешений:rw-,r--,r-x, и так далее.

Вы можете изменить разрешения, предоставленные файлу, используяchmodкоманда.

chmodможно использовать 2 способами. Первый использует символьные аргументы, второй - числовые аргументы. Начнем сначала с символов, что более интуитивно понятно.

Вы печатаетеchmodза которым следует пробел и буква:

  • aозначаетвсе
  • uозначаетПользователь
  • gозначаетгруппа
  • oозначаетдругие

Затем вы вводите либо+или же-чтобы добавить разрешение или удалить его. Затем вы вводите один или несколько символов разрешений (r,w,x).

За всем следует имя файла или папки.

Вот некоторые примеры:

chmod a+r filename #everyone can now read
chmod a+rw filename #everyone can now read and write
chmod o-rwx filename #others (not the owner, not in the same group of the file) cannot read, write or execute the file

Вы можете применить одни и те же разрешения к нескольким персонажам, добавив несколько букв перед+/-:

chmod og-r filename #other and group can't read any more

Если вы редактируете папку, вы можете применить разрешения к каждому файлу, содержащемуся в этой папке, с помощью-r(рекурсивный) флаг.

Числовые аргументы работают быстрее, но мне трудно их запомнить, когда вы не используете их изо дня в день. Вы используете цифру, которая представляет разрешения персонажа. Это числовое значение может быть максимум 7, и оно рассчитывается следующим образом:

  • 1если есть разрешение на исполнение
  • 2если есть разрешение на запись
  • 4если есть разрешение на чтение

Это дает нам 4 комбинации:

  • 0нет разрешений
  • 1может выполнить
  • 2могу писать
  • 3может писать, выполнять
  • 4может читать
  • 5может читать, выполнять
  • 6может читать, писать
  • 7может читать, писать и выполнять

Мы используем их парами по 3, чтобы установить разрешения для всех 3 групп вместе:

chmod 777 filename
chmod 755 filename
chmod 644 filename

Вchmodкоманда работает в Linux, macOS, WSL и везде, где есть среда UNIX

Скачать мою бесплатнуюСправочник по командам Linux


Больше руководств по cli: