Дозволи на доступ до файлів у Linux / Unix: як читати, писати та змінювати
⚡ Розумний підсумок
Дозволи на читання, запис та виконання файлів у Linux та Unix контролюють, хто може читати, записувати та виконувати кожен файл, захищаючи багатокористувацьку систему через два рівні: право власності, яке призначає користувача, групу та інших, та біти прав доступу на читання, запис та виконання.

Дозволи на файли в Linux а Unix вирішує, хто може читати, змінювати або запускати кожен файл, що забезпечує безпеку спільної багатокористувацької системи. На цій сторінці описано права власності на файли, дозволи на читання, запис і виконання, а також команди, які їх змінюють.
Linux — це клон Unix, багатокористувацької операційної системи, до якої можуть одночасно отримувати доступ багато користувачів. Linux також можна використовувати на мейнфреймах та серверах без будь-яких модифікацій. Але це викликає занепокоєння щодо безпеки, оскільки небажаний або зловмисний користувач може пошкодити, змінити або видалити важливі дані. Для ефективної безпеки Linux поділяє авторизацію на два рівні:
- Власність
- дозвіл
Поняття прав доступу до файлів та права власності є ключовим у Linux. Тут ми пояснюємо дозволи та права власності в Linux та обговорюємо їх обидва. Почнемо з права власності.
Право власності на файл Linux
Кожному файлу та каталогу у вашій системі Unix/Linux призначається три типи власників, наведені нижче. На діаграмі нижче показано, як право власності відповідає користувачеві, групі та іншим особам.
користувач
Користувач є власником файлу. За замовчуванням особа, яка створила файл, стає його власником. Отже, користувача також іноді називають власником.
Group
A група користувачів може містити кількох користувачів. Усі користувачі, що належать до групи, мають однакові дозволи групи Linux на доступ до файлу. Припустимо, у вас є проект, у якому кільком людям потрібен доступ до файлу. Замість того, щоб вручну призначати дозволи кожному користувачеві, ви можете додати всіх користувачів до групи та призначити груповий дозвіл на доступ до файлу, щоб лише ці члени групи, і ніхто інший, могли читати або змінювати файли.
Інше
Будь-який інший користувач, який має доступ до файлу. Ця особа не створила файл і не належить до групи користувачів, якій він може належати. Практично це означає всіх інших. Отже, коли ви встановлюєте дозволи для інших, це також називається встановленням дозволів для всього світу.
Тепер виникає головне питання: як Linux розрізняє ці три типи користувачів, щоб користувач «А» не міг впливати на файл, який містить життєво важливу інформацію чи дані іншого користувача «Б»? Це як не хотіти, щоб колега, який працює над вашим... комп'ютер Linux для перегляду зображень. Саме тут і потрібні дозволи, які визначають поведінку користувача.
Давайте розберемося з системою дозволів у Linux.
Дозволи файлів Linux
Кожен файл і каталог у вашій системі Unix/Linux має наступні три дозволи, визначені для всіх трьох власників, про яких йшлося вище.
- Читайте: Цей дозвіл надає вам право відкривати та читати файл. Дозвіл на читання каталогу дає вам можливість переглядати його вміст.
- Написати: Дозвіл на запис надає вам право змінювати вміст файлу. Дозвіл на запис до каталогу надає вам право додавати, видаляти та перейменовувати файли, що зберігаються в каталозі. Розглянемо сценарій, коли у вас є дозвіл на запис до файлу, але немає дозволу на запис до каталогу, де зберігається цей файл. Ви зможете змінювати вміст файлу, але не зможете перейменувати, перемістити або видалити файл з каталогу.
- Виконати: In Windows, виконуваний файл програми зазвичай має розширення «.exe», яке можна легко запустити. У Unix/Linux ви не можете запустити програму, якщо не встановлено дозвіл на виконання. Якщо дозвіл на виконання не встановлено, ви все ще можете бачити або змінювати код програми (за умови встановлення прав на читання та запис), але не запускати її.
Давайте розглянемо права доступу до файлів у Linux на прикладах. Виконання команди ls -l у терміналі дасть:
ls -l
На скріншоті нижче показано рядок дозволу у вигляді довгого списку.
Тут ми виділили '-rw-rw-r–', і цей дивний код розповідає нам про дозволи Unix, надані власнику, групі користувачів та всьому світу.
Тут перший символ «-» означає, що ми вибрали файл. Значок нижче позначає звичайний файл.
В іншому випадку, якби це був каталог, відображалася б літера «d», як у списку нижче.
Символи досить легко запам'ятовуються.
- r = дозвіл на читання
- w = дозвіл на запис
- x = дозвіл на виконання
- – = без дозволу
Розглянемо це так. Перша частина коду — «rw-». Це означає, що власник «Home» може:
- Прочитайте файл
- Напишіть або відредагуйте файл
Власник не може виконати файл, оскільки біт виконання встановлено на '-'. Піктограма нижче показує, що біт виконання очищено до тире.
За своєю суттю, багато дистрибутивів Linux, таких як Fedora, CentOS та Ubuntu додати користувача до групи з тим самим іменем, що й у користувача. Таким чином, користувач «tom» додається до групи з іменем «tom».
Друга частина — «rw-». Вона призначена для групи користувачів «Домашня сторінка», і учасники групи можуть:
- Прочитайте файл
- Напишіть або відредагуйте файл
Третя частина призначена для всього світу, тобто будь-якого користувача. Вона містить літеру «r–». Це означає, що користувач може лише:
- Прочитайте файл
У наведеному нижче розподілі кожна частина рядка дозволу пов’язана з власником, групою та світом.
Зміна прав доступу до файлів/каталогів у Linux за допомогою команди 'chmod'
Припустімо, ви не хочете, щоб колега бачив ваші особисті зображення. Цього можна досягти, змінивши дозволи на доступ до файлів.
Ми можемо використовувати команду «chmod» команда, що означає «змінити режим». За допомогою цієї команди ми можемо встановити дозволи (читання, запис, виконання) для файлу або каталогу для власника, групи та світу.
Синтаксис:
chmod permissions filename
Існує два способи використання команди:
- Абсолютний режим
- Символічний режим
Абсолютний (числовий) режим у Linux
У цьому режимі дозволи файлів представлені не символами, а тризначним вісімковим числом. У таблиці нижче наведено цифри для всіх типів дозволів.
| Номер | Тип дозволу | Symbol |
|---|---|---|
| 0 | Немає дозволу | - |
| 1 | Виконати | –X |
| 2 | Запис | -w- |
| 3 | Виконати + Написати | -wx |
| 4 | Читати | г- |
| 5 | Прочитати + Виконати | rx |
| 6 | Читання + Запис | rw- |
| 7 | Читання + Запис + Виконання | rwx |
Давайте розглянемо команду chmod у дії, як показано у вікні терміналу нижче.
У вікні терміналу вище ми змінили дозволи файлу 'sample' на '764'. Абсолютний код '764' говорить наступне:
- Власник може читати, писати та виконувати.
- Група користувачів може читати та писати.
- Світ може лише читати.
Це відображається як '-rwxrw-r–', як у результаті нижче.
Ось як можна змінити права доступу користувача до файлу в Linux, призначивши абсолютне число.
Символьний режим у Linux
В абсолютному режимі ви змінюєте дозволи для всіх трьох власників. У символьному режимі ви можете змінювати дозволи певного власника. Для зміни дозволів файлів Unix використовуються математичні символи.
| Operaтор | Опис |
|---|---|
| + | Додає дозвіл на файл або каталог |
| - | Вилучає дозвіл |
| = | Встановлює дозвіл та замінює дозволи, встановлені раніше |
Різні власники представлені наступним чином.
| користувач | Позначення |
|---|---|
| u | Користувач / власник |
| g | група |
| o | Інше |
| a | всі |
Ми не будемо використовувати дозволи в числах, таких як 755, а символи, такі як rwx. Розглянемо приклад, наведений нижче.
Зміна власника та групи в Linux
Для зміни власника файлу або каталогу можна використовувати таку команду:
chown user filename
Якщо ви хочете змінити користувача, а також групу для файлу або каталогу, скористайтеся командою:
chown user:group filename
Давайте розглянемо це в дії, як показано нижче.
Якщо ви хочете змінити лише власника групи, скористайтеся командою:
chgrp group_name filename
«chgrp» означає групу змін. На скріншоті нижче показано команду chgrp у використанні.
Чайові
- Файл /etc/group містить усі групи, визначені в системі.
- Ви можете скористатися командою «groups», щоб знайти всі групи, членом яких ви є, як показано нижче.
- Ви можете використовувати команду newgrp, щоб працювати як член групи, відмінної від вашої групи за замовчуванням, як показано нижче.
- Не можна мати дві групи, які володіють одним і тим самим файлом.
- У Linux немає вкладених груп. Одна група не може бути підгрупою іншої.
- x — виконання каталогу означає дозвіл «вхід» до каталогу та отримання можливого доступу до підкаталогів.
- Існують й інші дозволи, які можна встановити для файлів і каталогів, про які буде розказано в наступному розширеному посібнику.






.png)
.png)
.png)
.png)
.png)


