
Погружение в команду chmod: управление правами доступа в Linux
Утилита chmod (Change Mode) в операционной системе Linux используется для изменения прав доступа к файлам и каталогам. Эта команда позволяет устанавливать права на чтение, запись и выполнение для владельца файла, группы и других пользователей.
Утилита 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 {} \;