Розуміння прав доступу до файлів у Linux та як їх керувати.
Однією з ключових основ безпеки Linux системи та багатокористувацької архітектури є модель дозволів на файли. На відміну від Windows, Linux суворо контролює власність та доступ до кожного файлу та каталогу в системі. Оволодіння дозволами на файли — це не лише питання безпеки, а й необхідність для управління серверами, розгортання програмного забезпечення, виконання скриптів та автоматизації завдань.
Модель дозволів на файли в Linux
Кожен файл і каталог в Linux має три типи прав доступу, призначених трьом типам користувачів:
| Клас користувача | Опис |
|---|---|
| власник | Користувач, який володіє файлом |
| група | Користувачі в групі файлу |
| інші | Усі інші користувачі в системі |
Кожному класу можуть бути надані три типи дозволів:
| Дозвіл | Символ | Значення |
|---|---|---|
| читати | r | Перегляд вмісту файлу / список каталогу |
| писати | w | Змінити файл або каталог |
| виконувати | x | Запустити файл або отримати доступ до каталогу |
Перегляд дозволів за допомогою ls -l
Використовуйте команду ls -l для відображення дозволів на файли:
ls -l myscript.sh
Вихідні дані:
-rwxr-xr-- 1 alice devs 2048 Jan 25 10:00 myscript.sh
Розбір:
- – → звичайний файл
- rwx → власник (читання/запис/виконання)
- r-x → група (читання/виконання)
- r– → інші (тільки читання)
Зміна дозволів за допомогою chmod
📌 Символічний режим:
chmod u+x myscript.sh # Add execute to user chmod g-w myscript.sh # Remove write from group chmod o=r myscript.sh # Set read-only for others
📌 Числовий режим:
chmod 755 myscript.sh # rwx for owner, rx for group, rx for others
| Вісімковий | Значення |
|---|---|
| 7 | rwx |
| 6 | rw- |
| 5 | r-x |
| 4 | r– |
| 0 | — |
Приклад:
chmod 644 file.txt # owner: rw-, group: r--, others: r-- chmod 700 script.sh # owner: rwx, group/others: ---
Управління власністю за допомогою chown та chgrp
Змінити власника файлу:
chown alice file.txt
Змінити групу:
chgrp devs file.txt
Змінити обидва:
chown bob:admins file.txt
Використовуйте -R для застосування змін рекурсивно:
chown -R www-data:www-data /var/www/
Спеціальні біти дозволів
Linux підтримує три спеціальні режими, які змінюють стандартну поведінку:
1. SUID (Set User ID)
- Застосовується до виконуваних файлів
- Виконується з привілеями власника, а не викликувача
chmod u+s /usr/bin/passwd
🔍 вихід ls -l: -rwsr-xr-x
Використання: /usr/bin/passwd повинен виконуватись як root для оновлення /etc/shadow.
SGID (Set Group ID) s
- На файлах: виконується з привілеями групи файлу
- На каталогах: нові файли успадковують групу
chmod g+s /opt/project
🔍 вихід ls -l: drwxr-sr-x
Корисно в спільних папках для розробки.
Sticky Bit t
- На каталогах: тільки власник може видаляти/перейменовувати свої файли
- Звичайно в /tmp для захисту файлів користувачів
chmod +t /shared/folder
ls -ld /tmpdrwxrwxrwt 10 root root 4096 28 січня 12:00 /tmp
Розуміння umask
umask встановлює стандартні дозволи для нових файлів/каталогів:
Перевірте поточне значення: umask
Звичайне значення: 0022
| Файл | Стандартні дозволи | З umask 0022 |
|---|---|---|
| Файл | 666 → 644 | rw-r–r– |
| Каталог | 777 → 755 | rwxr-xr-x |
Встановіть тимчасовий umask:
umask 0077 # Files: 600, Dirs: 700
Рекурсивні виправлення дозволів
Встановіть дозволи для папок і файлів окремо:
find /my/project -type d -exec chmod 755 {} ; find /my/project -type f -exec chmod 644 {} ;
Висновок
Дозволи на файли в Linux забезпечують детальний контроль доступу для безпеки, багатокористувацьких середовищ та автоматизації. Розуміння того, як переглядати, змінювати та застосовувати дозволи, надає вам можливість впевнено управляти серверами, захищати дані та безпечно співпрацювати.
Чи ви розгортаєте веб-додатки, управляєте хмарними серверами або створюєте оболонкові скрипти — знання про chmod, chown, umask та спеціальні біти дозволів є необхідним.
