---
description: Команда chmod дозволяє встановлювати права доступу для файлів і каталогів
---

# chmod

1.  **Щоб зробити файл виконуваним :**

    ```bash
    chmod +x script.sh
    ```

    Після виконання цієї команди, ви зможете виконати цей файл, введенням шляху до нього або використовуючи команду `./` перед ім'ям файлу:

    ```bash
    ./script.sh
    ```

    Зверніть увагу, що вам може знадобитися право на виконання файлу, аби вам було дозволено використовувати команду `chmod`. Якщо у вас немає необхідних прав, ви можете використовувати `sudo` перед командою `chmod`
2.  **Надати всі права для всіх:**

    ```bash
    chmod +rwx файл
    ```
3.  **Заборонити доступ для інших користувачів:**

    ```bash
    chmod go= файл
    ```
4.  **Тільки читання і запис для власника:**

    ```bash
    chmod u=rw файл
    ```
5.  **Дозволити виконання тільки для групи:**

    ```bash
    chmod g=x файл
    ```
6.  **Додати право на виконання для всіх:**

    ```bash
    chmod a+x файл
    ```
7.  **Встановлення SUID (Set User ID) для виконання файлу власником:**

    ```bash
    chmod u+s файл
    ```
8.  **Встановлення SGID (Set Group ID) для виконання файлу групою:**

    ```bash
    chmod g+s файл
    ```
9.  **Встановлення "sticky bit" для каталогу (запобігає видаленню чужих файлів):**

    ```bash
    chmod +t каталог
    ```
10. **Комбінування дозволів:**

    ```bash
    chmod u=rw,go=rx файл
    ```

Також можна використовувати числовий метод для встановлення дозволів за допомогою команди `chmod`. Кожен дозвіл визначається трьома числами, які вказують дозволи для власника, групи та інших користувачів. Кожне число відповідає сумі значень дозволів:

* `4` - Читання (Read)
* `2` - Запис (Write)
* `1` - Виконання (Execute)

Сумуючи ці значення, ви можете встановити потрібні дозволи.

Ось таблиця відповідності між числовими і літеральними значеннями дозволів для команди `chmod`:

<table><thead><tr><th width="187.33333333333331">Літера</th><th width="240">Число</th><th>Дозвіл</th></tr></thead><tbody><tr><td><code>r</code></td><td>4</td><td>Читання</td></tr><tr><td><code>w</code></td><td>2</td><td>Запис</td></tr><tr><td><code>x</code></td><td>1</td><td>Виконання</td></tr><tr><td><code>s</code></td><td>4 (SUID), 2 (SGID)</td><td>Set User ID, Set Group ID</td></tr><tr><td><code>t</code></td><td>1</td><td>Sticky Bit</td></tr></tbody></table>

За допомогою цих значень ви можете конструювати літеральні представлення дозволів для команди `chmod`. Наприклад:

* `rwx` відповідає `7` (4 + 2 + 1),
* `rw-` відповідає `6` (4 + 2),
* `r--` відповідає `4` (тільки читання).

Ось кілька прикладів:

1.  **Надати всі права для всіх:**

    ```bash
    chmod 777 файл
    ```
2.  **Тільки читання і запис для власника, читання для групи та інших:**

    ```bash
    chmod 644 файл
    ```
3.  **Дозволити виконання для власника та групи, тільки читання для інших:**

    ```bash
    chmod 551 файл
    ```
4.  **Тільки виконання для всіх:**

    ```bash
    chmod 111 файл
    ```
5.  **Встановлення SUID (Set User ID) та SGID (Set Group ID) для власника та групи відповідно:**

    ```bash
    chmod 4755 файл
    ```
6.  **Встановлення "sticky bit" для каталогу:**

    ```bash
    chmod 1777 каталог
    ```

Використання числових значень може бути зручним, особливо при автоматизації налаштувань дозволів за допомогою сценаріїв чи у випадках, коли потрібно швидко задати конкретні дозволи.

Також важливо зазначити, що при встановленні SUID, SGID та "sticky bit" числові значення можуть включати додаткові біти. Наприклад, `4755` встановлює SUID, що додає 4000 до числа прав доступу.
