SebWeo.com
У світі Linux та серверного адміністрування безпека та контроль є ключовими. Одним з найперших і найважливіших інструментів, який ви маєте освоїти, є команда chmod. Якщо ви вже знайомі з основами роботи в терміналі, про які ми говорили у нашій попередній статті про інтерфейс командного рядка, то настав час зробити наступний крок.
Ця стаття — ваш детальний путівник по команді chmod. Ми розберемо, що таке права доступу, як їх читати та, найголовніше, як їх змінювати за допомогою двох потужних режимів: символьного та цифрового.
Кожен файл і кожна папка у Linux-подібних системах має набір прапорів, які визначають, хто і що може з ними робити. Це і є права доступу. Щоб їх побачити, достатньо виконати команду ls -l у вашому терміналі.
$ ls -l -rwxr-xr-- 1 user group 4096 лип 27 11:00 script.sh drwxr-xr-x 2 user group 4096 лип 27 11:02 my_folder
Таємничий рядок -rwxr-xr-- на початку і є візуальним представленням прав. Він складається з 10 символів, які розбиваються на чотири частини:
- для файлу, d для директорії (папки).Самі права позначаються трьома літерами — rwx:
r (Read) — право на читання вмісту файлу або перегляд списку файлів у папці.w (Write) — право на зміну (запис) файлу або створення/видалення файлів у папці.x (Execute) — право на виконання файлу (якщо це скрипт або програма) або вхід до папки.
Команда chmod (від “change mode“) дозволяє змінювати ці права. Вона має два основні синтаксиси, і розуміння обох робить вас гнучким адміністратором.
Цей режим використовує літери для позначення користувачів (u, g, o, a) та оператори (+, -, =) для зміни прав (r, w, x).
u (user/власник), g (group/група), o (others/інші), a (all/всі).+ (додати право), - (забрати право), = (встановити конкретні права, перезаписавши старі).
Додати право на виконання файлу script.sh для власника:
chmod u+x script.sh
Забрати право на запис у всіх, крім власника, для файлу config.txt:
chmod go-w config.txt
Встановити права “читання та запис” для власника, і “тільки читання” для групи та інших:
chmod u=rw,go=r config.txt
Це найпопулярніший спосіб використання chmod. Він базується на числах, де кожне право має свою вагу:
r (читання) = 4w (запис) = 2x (виконання) = 1Щоб отримати потрібну комбінацію, ви просто додаєте ці числа. Наприклад, rwx = 4+2+1 = 7. Права задаються трьома цифрами — для власника, групи та інших відповідно.
| Число | Права (rwx) | Опис | 
|---|---|---|
| 0 | --- | Жодних прав | 
| 1 | --x | Тільки виконання | 
| 2 | -w- | Тільки запис | 
| 3 | -wx | Запис та виконання (2+1) | 
| 4 | r-- | Тільки читання | 
| 5 | r-x | Читання та виконання (4+1) | 
| 6 | rw- | Читання та запис (4+2) | 
| 7 | rwx | Повні права (4+2+1) | 
chmod 755 my_script.sh — Найчастіший варіант для скриптів та папок.
rwx — повні права.r-x — читання та виконання.r-x — читання та виконання.chmod 644 index.html — Стандарт для веб-файлів, які не є виконуваними.
rw- — читання та запис.r-- — тільки читання.r-- — тільки читання.
Ще один практичний приклад: Кроки для розрахунку прав кожної категорії користувачів.
Щоб обчислити права та підсумкову цифру, потрібно провести невелику математичну операцію підсумовування:
654Заджойним підсумкові значення: у прикладі (для власника 6, для групи 5, а інших 4) підсумкове значення буде = 654.
Іноді потрібно змінити права для папки та всіх файлів і підпапок всередині неї. Для цього використовується прапор -R (рекурсивно).
УВАГА: Використовуйте цю опцію з великою обережністю, оскільки масова зміна прав може порушити роботу системи або створити загрозу безпеці.
Наприклад, встановити права 755 для папки public_html та всього її вмісту:
chmod -R 755 public_html/Правильною практикою є встановлення прав 755 для папок і 644 для файлів всередині них, що робиться за допомогою комбінації команд find та chmod.
Грамотне використання chmod дає вам кілька ключових переваг:
Команда chmod — це не просто утиліта, це фундаментальний механізм контролю у Linux. Оволодівши символьним та цифровим режимами, ви зможете гнучко та ефективно керувати безпекою ваших файлів та директорій. Почніть з простих прикладів, як-от chmod 644 для текстових файлів та chmod 755 для скриптів, і поступово до вас прийде відчуття повного контролю над своєю системою.
WordPress роками був неперевершеним "монолітом": він відповідав і за зручну адмін-панель, і за збереження даних,…
У світі веб-серверів часто говорять про протистояння Nginx vs Apache. Але що, якби я сказав…
Коли я починав свій шлях у веб-розробці, питання "який веб-сервер використовувати?" практично не стояло. Відповідь…
Коли мова заходить про веб-сервери, два імені завжди на слуху: Apache та Nginx. Apache —…
У світі веб-розробки ми постійно стикаємося з проблемою: "А в мене на комп'ютері все працює!".…
На зорі моєї кар'єри веб-розробника все було відносно просто: встановив локальний сервер (пам'ятаєте Denwer?), поклав…