Команда chmod в Linux

Команда chmod в Linux

Linux, please

Команда chmod

Команда chmod предназначена для изменения прав доступа файлов и директорий в Linux. Название команды произошло от словосочетания «change mode».

Синтаксис команды chmod следующий:

chmod разрешения имя_файла

Разрешения можно задавать двумя способами:

  • Числом
  • Символами

Изменение прав доступа командой chmod

Запись прав доступа числом

Пример:

chmod 764 myfile

В данном формате права доступа задаются не символами rwx, как описано выше, а трехзначным числом. Каждая цифра числа означает определенный набор прав доступа.

  • Первая цифра используется для указания прав доступа для пользователя.
  • Вторая цифра для группы.
  • Третья для всех остальных.

В таблице ниже приводятся все возможные комбинации разрешений rwx и соответсвующие им числа (которые используются в команде chmod):

ЧислоРазрешенияСимвольное обозначение0разрешения отсутствуют---1x — запуск--x2w — изменение-w-3x+w — запуск+изменение-wx4r — чтениеr--5r+x — чтение+запускr-x6r+w — чтение+изменениеrw-7r+w+x — чтение+изменение+запускrwxРассмотрим использование команды chmod с записью прав доступа числом на примере. Установим для файла права доступа 764:

chmod 764 myfile

Это означает (см. таблицу выше), что для файла myfile мы устанавливаем права доступа 764, которые означают:

  • 7 — права для владельца-пользователя. Владелец файла может читать, изменять и запускать файл (r+w+x).
  • 6 — права для группы. Пользователи, которые принадлежат группе могут читать и изменять файл (r+w).
  • 4 — права для всех остальных. Все остальные могут только читать файл (r).

Если записать 764 с помощью символов (см. таблицу), то мы получим: «rwxrw-r-».

Команда chmod


В таблице ниже приведены некоторые часто используемые значения числовых значений прав доступа:

Числовое

обозначение"rwx"-обозначениеОписание400-r--------Владелец файла может только читать файл. Для всех остальных все действия с файлом запрещены.644-rw-r--r--Все пользователи могут читать файл. Владелец может изменять файл.660-rw-rw----Владелец и группа могут читать и изменять файл. Для всех остальных все действия с файлом запрещены.664-rw-rw-r--Все могут читать файл. Владелец и группа могут изменять.666-rw-rw-rw-Все могут читать и изменять файл.700-rwx------Владелец может читать, изменять и запускать файл. Для всех остальных все действия с файлом запрещены.744-rwxr--r--Все могут читать файл. Владелец может также изменять и запускать файл.755-rwxr-xr-xВсе могут читать и запускать файл. Владелец может также изменять файл.777-rwxrwxrwxВсе пользователи могут читать, изменять и редактировать файл.Запись прав доступа символами

Примеры:

chmod +x myfile1
chmod g=rw myfile2
chmod u-w myfile3

Как вы можете видеть, в данном формате права доступа задаются символами rwx, но в синтаксисе используются и другие вспомогательные символы, например, математические операции «+» и «-» и такие символы как, например, «g» или «u».

Общий синтаксис можно записать примерно так:

chmod (владелец)(математическая операция)(разрешения) имя_файла

Обозначения для владельцев файла следующие:

ОбозначениеОписаниеuВладелец-пользователь.gГруппа.oВсе остальные.aВообще все.Математические операции означают следующее:

ОператорОписание+Добавляет к текущим правам доступа новое разрешение.-Удаляет из текущих прав доступа определенное разрешение.=Устанавливает полностью новые разрешения (предыдущие перезаписываются новыми).В одной команде можно перечислять владельцев и их разрешения через запятую (см. пример ниже).

Рассмотрим примеры:

chmod +x myfile1
  • В данном случае мы не используем обозначения для владельцев, а значит разрешения устанавливаются для всех пользователей. «+x» означает — установить разрешение на запуск (x) файла для всех пользователей. Это эквивалентно выполнению команды: chmod a+x myfile1.
chmod g=rw myfile2
  • Здесь используется обозначение g и символ равенства «=». Это означает, что для группы мы устанавливаем права доступа на чтение и запись файла (rw).
chmod u-w myfile3
  • Для владельца файла (u) мы удаляем разрешение на изменение (w) файла.
chmod ug+x myfile2
  • Разрешаем владельцу (u) и группе (g) запускать файл (x).
chmod u+x,g-w,o-r myfile3
  • Это как раз тот случай, когда мы перечисляем владельцев через запятую и устанавливаем для них разрешения. Для владельца файла (u) мы разрешаем запуск файла, для группы (g) мы запрещаем изменять файл, для всех остальных (o) мы запрещаем читать файл.

Рекурсивное изменение прав доступа

Если необходимо изменить права доступа на все файлы в директории, включая вложенные директории, то для этого существует опция -R, что означает рекурсивное изменение прав доступа для директорий и их содержимого. Например, изменим права доступа у всех файлов в директории Mydir:

chmod -R 644 Mydir

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

sudo chmod 644 file





Спасибо за прочтение!

НАШИ ПРОЕКТЫ
Также вы можете присылать ваши статьи в бота (оформляйте в телеграфе), я их просмотрю, если всё ОК - опубликую статью на канале с указанием автора.



Report Page