Роз’яснення дозволів на файли та каталоги Linux

Linux є багатокористувацькою операційною системою, тому кілька користувачів можуть одночасно взаємодіяти з одним комп’ютером за допомогою Linux. Будучи багатокористувацькою операційною системою, для Linux важливо гарантувати безпеку та конфіденційність файлів, що належать різним користувачам.

Щоб досягти цього, Linux має продуману систему для обробки дозволів на файли та каталоги. Таким чином користувачі Linux можуть контролювати доступ до файлів різними користувачами та дії, які користувачі можуть виконувати під час використання комп’ютера.

Як користувачу Linux дуже важливо розуміти, як Linux обробляє дозволи на файли та каталоги та як ви можете працювати з різними доступними дозволами, щоб захистити свої файли та гарантувати функціональність вашого комп’ютера. Щоб зрозуміти, як Linux керує правами доступу до файлів і каталогів, давайте спочатку розглянемо різні категорії користувачів в операційній системі Linux.

Категорія користувачів в Linux

Перша категорія користувачів — власники файлу або каталогу. Кожен файл або каталог у Linux має одного власника. Цей власник зазвичай отримує більше дозволів на свій файл або каталог. Власник файлу зазвичай позначається літерою u для користувача.

У Linux кілька користувачів можна об’єднати в групу та надати їм дозволи на файли як групі. Вони відомі як власники груп і позначаються літерою g.

Наприклад, якщо у вас є файл із рекомендаціями книг і ви хочете надати кільком користувачам однакові дозволи на файл, простий спосіб це зробити — об’єднати користувачів у групу та надати дозволи всій групі.

Інша категорія користувачів відома як інші та позначається літерою o. Це користувачі, які не є власниками файлу, а також не входять до групи з дозволами на файл. Інше представляє всіх інших у системі.

Усі користувачі на комп’ютері, тобто власники файлів, користувачі в групах та інші користувачі можуть вказуватися буквою a.

Створення та додавання нового користувача в Ubuntu Linux

Давайте розглянемо, як ви можете створити та додати нового користувача в Ubuntu Linux. Щоб слідувати цьому посібнику, також створіть нового користувача.

1. Відкрийте «Параметри» та на панелі меню ліворуч натисніть «Користувач», потім натисніть «Розблокувати» та введіть свій пароль, коли буде запропоновано. Вам потрібно натиснути «Розблокувати», щоб додати нового користувача. За замовчуванням цю функцію заблоковано.

2. Після розблокування ви побачите опцію «Додати користувача». Натисніть її, щоб додати нового користувача

3. Щоб створити нового користувача, введіть його повне ім’я та ім’я користувача, виберіть «Установити пароль зараз» і встановіть його пароль. Крім того, переконайтеся, що для типу облікового запису встановлено значення «Адміністратор», а потім натисніть «Додати», щоб додати користувача.

4. Ви повинні побачити новий обліковий запис користувача, який ви щойно створили, як показано нижче.

Дозволи доступу до файлів і каталогу Linux

Дозволи стосуються правил доступу до файлів і каталогів і дій, які можуть виконувати над ними різні користувачі. Linux має три основні категорії дозволів:

  • Read(r) – дозволяє користувачеві переглядати вміст файлу та список вмісту каталогу
  • Write(w) – дозволяє користувачеві змінювати вміст файлу. За допомогою каталогів дозволи на запис дозволяють користувачеві змінювати вміст каталогу, наприклад, створювати, видаляти, перейменовувати або переміщувати файли та підкаталоги в каталозі. Однак дозволи на запис у каталогах працюють, лише якщо користувач також має дозволи на виконання.
  • Execute(x) – дозволи на виконання означають, що файл можна розглядати як програму, яку можна виконати. Для каталогів дозвіл на виконання дозволяє користувачеві вводити або «cd» у каталозі.
  • Дозволи на читання, запис і виконання призначаються трьом категоріям користувачів, доступним у Linux.

    Ви також можете прочитати, як видалити файли та каталоги в Linux

    Довгий лістинг у Linux

    Щоб переглянути вміст файлу в каталозі Linux, ми зазвичай запускаємо команду ls. Однак це лише список доступних файлів і каталогів і не надає жодної додаткової інформації.

    Щоб переглянути більше інформації про вміст, вам потрібно використовувати формат довгого списку. Для цього запустіть команду ls з прапорцем -l. Це дасть вам дозволи на файл, власників файлу та груп власників файлу, як показано нижче:

    В Ubuntu за замовчуванням, якщо не було створено групу, назва групи збігається з назвою власника файлу.

    Для створення групи ми використовуємо команду addgroup. Щоб додати групу під назвою «редактори», виконайте наведену нижче команду та введіть пароль, коли буде запропоновано

    sudo addgroup editors

    sudo дозволяє нам запускати команди від імені користувача root, який є суперкористувачем з правами виконувати зміни, які впливають на всіх користувачів комп’ютера.

    Щоб додати користувачів до групи, ми використовуємо такий синтаксис:

    adduser <user> <group>

    Тому, щоб додати belmont і madici до групи редакторів, ми виконуємо

    sudo adduser belmont editors
    sudo adduser madici editors

    Щоб побачити групи, до яких належить користувач, виконайте:

    groups <username>

    Результат виконання наведених вище команд показано нижче:

    Давайте тепер розглянемо атрибути файлу, які повідомляють нам про типи файлів і дозволи на файл. a.

    Атрибути файлів у Linux

    У Linux атрибути файлів складаються рівно з десяти символів. Перший символ вказує на тип файлу. Деякі з поширених перших символів, що представляють різні файли, включають:

    • d вказує на каталог
    • – позначає звичайний файл, наприклад текстові файли
    • c вказує на символьний спеціальний файл
    • l вказує на символічне посилання
    • b вказує на спеціальний файл блоку

    Решта дев’ять символів використовуються для відображення дозволів власника, власника групи та інших користувачів. Дев’ять персонажів розділені на групи по три. Перша група вказує на дозволи власника, друга група вказує на дозволи власника групи, а останні три вказують на дозволи для інших, тобто кожного іншого користувача на комп’ютері.

    Дозволи для кожної категорії вказуються, починаючи з дозволу на читання, потім на запис і, нарешті, на виконання. Дозвіл на читання позначається літерою r, дозвіл на запис — буквою w, дозвіл на виконання — літерою x.

    Символ – використовується, якщо користувач не має певного дозволу. Наприклад, rw- для власника групи означає, що він має дозволи на читання та запис, але не має дозволу на виконання для цього каталогу (d).

    Зміна прав доступу до файлу за допомогою символьної нотації

    Щоб змінити дозволи на файл або каталог, ми використовуємо команду chmod і вказуємо, для кого ми змінюємо дозволи.

    Це може бути власник файлу, позначений літерою u для користувача, власник групи, представлений літерою g, або інші користувачі, представлені літерою o. Ми також можемо орієнтуватися на всі три категорії користувачів, використовуючи букву а, яка означає все вищезазначене.

    Наступне, що ми визначаємо, це зміни, які ми вносимо. Щоб додати дозвіл, ми використовуємо + (знак плюс). Щоб видалити дозвіл, ми використовуємо – (знак мінус). Останнє, що ми надаємо, — це дозволи, які ми додаємо за допомогою r, w або x для представлення трьох доступних дозволів.

    Щоб побачити це в дії, створіть каталог під назвою books за допомогою наведеної нижче команди

    mkdir books

    Введіть або ‘cd’ у каталог:

    cd books

    Створіть файл під назвою readingList.txt

    touch readingList.txt

    Створіть довгий список вмісту каталогу книг, виконавши:

    ls -l

    Результат виглядає як показано:

    Файл, який ми створили, є звичайним файлом, позначеним першим –, власник і власник групи мають дозволи на читання та запис, тоді як інші користувачі мають дозвіл лише на читання. Щоб надати іншим користувачам дозвіл на запис у файл, ми виконаємо таку команду:

    chmod o+w readingList.txt

    Щоб побачити, чи змінилися дозволи для інших користувачів, виконайте

    ls -l

    Вихід:

    Зверніть увагу, що дозвіл на файл інших користувачів змінився з r– на rw-, що означає, що вони тепер мають дозвіл на запис.

    Щоб додати права на виконання для власника (користувача) файлу, виконайте:

    chmod u+x readingList.txt

    Щоб видалити дозволи на запис у власників групи, виконайте:

    chmod g-w readingList.txt

    Щоб видалити дозволи на читання для всіх користувачів, щоб ніхто не міг переглядати файл, виконайте:

    chmod a-r readingList.txt

    Щоб повернути дозвіл на читання для власника файлу, виконайте:

    chmod u+r readingList.txt

    Щоб додати дозволи на запис і виконання для власника групи файлу, виконайте:

    chomod g+wx readingList.txt

    Зміна дозволів за допомогою вісімкової нотації

    У Linux кожен із трьох доступних дозволів має лише два можливі значення. Дозвіл на читання може бути лише r або –, дозвіл на запис може бути лише w або –, а дозвіл на виконання може бути лише x або –.

    Тому можна вважати, що ці дозволи ввімкнено або вимкнено, і тому вони представлені за допомогою двійкових чисел, які мають лише два доступні значення. Це 1 для увімкнення або істини та 0 для вимкнення чи хибності. Там такий дозвіл, як rw–, можна представити як 110 за допомогою двійкових чисел.

    Таким чином, для будь-якої категорії користувачів достатньо трьох двійкових чисел, щоб представити всі їхні дозволи. Наприклад, дозвіл для власника, групи та інших rwxrw-r– можна представити як 111110100 за допомогою двійкового числа.

    Однак, щоб уникнути запису двійкового числа, яке є довгим і його легко заплутати, кращою альтернативою є використання вісімкових чисел.

    Вісімкові числа мають основу 8 і тому мають лише 8 можливих значень. Кожне вісімкове число відображає рівно три двійкові цифри.

    Тому такий дозвіл, як rw-, може бути представлений як 110 у двійковому форматі. Вісімковий еквівалент 110 дорівнює 6, тому 6 можна використовувати для представлення rw-. Вісімкові числа можна використовувати для представлення дозволів на читання, запис і виконання власника, групи та інших, як показано нижче:

    Замість написання довгих двійкових цифр краще представляти дозволи за допомогою вісімкових чисел. Тому всі дозволи власника, групи та інших представлені за допомогою одновісімкових чисел, як показано на схемі вище.

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

    Однак використання вісімкової системи позначення потребує певного часу та практики, щоб мати змогу пригадати, що означає кожне вісімкове число. Тим не менш, не соромтеся звертатися до діаграми вище, коли ви використовуєте вісімкове позначення. Давайте розглянемо кілька прикладів зміни дозволів за допомогою вісімкового запису

    Щоб надати всім користувачам, тобто власнику, власнику групи та іншим користувачам, дозвіл на читання, запис і виконання readingList.txt, виконайте:

    chmod 777 readingList.txt

    Щоб перевірити, чи було змінено дозволи, виконайте:

    ls -l

    Вихід:

    total 0
    -rwxrwxrwx 1 madici madici 0 Sep  6 05:45 readingList.txt

    Зверніть увагу, що тепер власник, група та інші користувачі мають дозвіл на читання, запис і виконання readingList.txt.

    Щоб видалити дозволи на запис як у власника групи, так і у інших, виконайте:

    chmod 755 readingList.txt

    Щоб вилучити дозвіл на виконання від власника та інші виконати:

    chmod 654 readingList.txt

    Спеціальні дозволи в Linux

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

    До спеціальних дозволів належать:

    • Встановити ідентифікатор користувача (SUID) – дозвіл SUID дозволяє користувачеві запускати файл або програму з правами власника, а не користувача, який їх виконує. Це корисно, коли стандартним користувачам потрібно виконувати завдання, які потребують підвищених привілеїв.
    • Встановити ідентифікатор групи (SGID) – дозвіл SGID дозволяє користувачеві виконувати файл із дозволами власника групи файлу, а не дозволами його фактичної групи.
    • Закріплений біт – закріплений біт – це дозвіл, який зазвичай встановлюється для каталогів, щоб гарантувати, що файли в каталозі можуть бути видалені лише фактичним власником каталогу, власником цього конкретного файлу або користувачем root.

    Три спеціальні дозволи можна використовувати разом зі стандартними дозволами: читання, запис і виконання.

    Висновок

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

    Ви також можете дізнатися, як використовувати команди Linux у Windows.