[[A8R.ru]]
...
Погружение в команду chmod: управление правами доступа в Linux

Утилита chmod (Change Mode) в операционной системе Linux используется для изменения прав доступа к файлам и каталогам. Эта команда позволяет устанавливать права на чтение, запись и выполнение для владельца файла, группы и других пользователей.

13.03.2024
Linux, Permission

Утилита chmod (Change Mode) в операционной системе Linux используется для изменения прав доступа к файлам и каталогам. Эта команда позволяет устанавливать права на чтение, запись и выполнение для владельца файла, группы и других пользователей.

Содержание:

Для использования команды chmod необходимо знать права доступа в виде числа или символов. 

Как использовать коды chmod в UNIX:

В unix существует три типа разрешений для файлов и папок

  • Чтение (Read) — обозначается буквой «r». Предоставляет возможность просматривать содержимое файла или каталога.
  • Запись (Write) — обозначается буквой «w». Позволяет создавать, изменять и удалять файлы внутри каталога, а также изменять содержимое файла.
  • Выполнение (Execute) — обозначается буквой «x». Дает разрешение на выполнение файла или на вход в каталог.

Кроме того, существует классификация пользователей под названием UGO:

  • U -> Владелец (Owner) — пользователь, который является владельцем файла или каталога.
  • G -> Группа (Group) — группа пользователей, к которой принадлежит файл или каталог.
  • O -> Остальные пользователи (Others) — все остальные пользователи системы.

Когда вы запустите $ ls -l ваш результат будет примерно таким:

-rwxrwxrwx@  1 user  staff  708301983 Aug 11 13:51 all.zip-rw-r--r--   1 user  staff          0 Aug 22 22:10 chmodCheatSheet.md-r--------@  1 user  root        1692 Jul  6 10:13 deploykey.pemdrwxr-xr-x   3 user  staff        102 Aug 20 19:14 deploynode

Как это прочитать?

Где буква ставится  1, а где - ставится  0. Примеры:

U G O
r w x r w x r w x
1 1 1 1 1 1 1 1 1

Таким образом, пользователь, группа и другие лица могут читать, записывать и извлекать файл или папку

U G O
r w - r -- r - x
1 1 0 1 0 0 1 0 1

Итак, пользователь может читать и писать, группа может только читать, наконец, другие могут читать и выполнять


Коды!

Bin Dec Представление
000 0 - - -
001 1 - - x
010 2 - w -
011 3 - w x
100 4 r - -
101 5 r - x
110 6 r w -
111 7 r w x
a — любые пользователи
u — права пользователя g — права группы o — права всех остальных
r w x r w x r w x
4 2 1 4 2 1 4 2 1
rwxrwxrwx = (4+2+1), (4+2+1), (4+2+1) = 777

Синтаксис Символьной нотации

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

chmod [ugoa] [+-=] [rwx] файл(ы)

Где:

[ugoa] указывает, к кому применяются изменения:

    • u: владелец файла.
    • g: группа файла.
    • o: остальные пользователи (не владелец и не входящие в группу).
    • a: все (при использовании заменяет собой ugo).

[+-=] определяет, что нужно сделать с разрешениями:

    • +: добавить разрешение.
    • -: удалить разрешение.
    • =: установить разрешение точно (заменить текущие разрешения).

— [rwx] представляет собой комбинацию символов `r`, `w` и `x`, обозначающих разрешения:

    • r: разрешение на чтение.
    • w: разрешение на запись.
    • x: разрешение на выполнение.

Примеры использования символьной нотации:

chmod u+x файл — добавить право выполнения для владельца файла.

chmod go-rw файл — удалить право чтения и записи для группы и остальных пользователей.

chmod a=rwx файл — установить полные права (чтение, запись и выполнение) для всех.


Синтаксис  Числовой нотации

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

4 — разрешение на чтение (read).

2 — разрешение на запись (write).

1 — разрешение на выполнение (execute).

0 — отсутствие разрешения.

Примеры использования числовой нотации.

chmod 644 myfile

Данная команда установит права -rw-r—r—, где владелец имеет права на чтение и запись, а группа и остальные пользователи могут только читать файл.

 

chmod 755 script.sh

Эта команда поможет установить права -rwxr-xr-x, где владелец имеет полные права, а остальные пользователи могут только читать и выполнять скрипт.


Изменение прав только на папки или только на все файлы в определённой директории.

Смена прав на 755 для всех папок внутри /var/www/sites/example.com:

find /var/www/ -type d -exec chmod 755 {} \;

Смена прав на 644 для всех файлов внутри /var/www/sites/example.com:

find /var/www/ -type f -exec chmod 644 {} \;