ProIT: медіа для профі в IT
3 хв

Як маски ACL допоможуть точно налаштувати дозволи на файли в Linux

author avatar ProIT NEWS

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

Ви використовуєте списки контролю доступу (ACL), але не знаєте концепції масок? Давайте поглянемо детальніше на те, що таке маски та як вони взаємодіють із дозволами файлової системи Linux.

Що таке маски ACL?

Маски ACL — це спосіб забезпечити взаємодію дозволів із програмами та утилітами, які не підтримують ACL. Маски списку контролю доступу (ACL) забезпечують цю сумісність, перетворюючи записи ACL у дозволи POSIX. Під час додавання нових записів ACL маска автоматично налаштовується відповідно до максимальних дозволів, дозволених для всіх іменованих користувачів або груп.

Давайте подивимося на щойно створений файл mysupersecretfile.txt, з яким ми працюватимемо в цій статті:

ls-lmysupersecretfile.txt

Досить прості дозволи для такого конфіденційного документа, чи не так?

Зверніть увагу на крапку (.) після встановлених дозволів. Це вказує на контекст SELinux, який не має відношення до ACL або масок ACL.
Для ясності давайте також перевіримо записи ACL для файлу за допомогою команди getfacl:

getfacl mysupersecretfile.txt

Поточні записи ACL для записів власника користувача та групи відображаються безпосередньо на фактичного користувача POSIX та групу власника файлу. Це нормально для будь-якого файлу, який не має розширених записів ACL, і називається «мінімальними ACL».

Припустімо, ми отримали запит на додавання користувача під назвою менеджер як запис ACL до цього файлу з дозволом на читання. Ми зробимо це за допомогою команди setfacl. Тоді давайте розглянемо нові дозволи ACL за допомогою команд ls і getfacl:

Тепер ви помітите знак «+» поруч із записами дозволів у команді ls, що вказує на те, що з файлом пов’язані записи ACL.

Чи бачите ви зараз рядок маски у виводі команди getfacl? Цей запис маски було призначено автоматично. Це необхідно; він представляє максимальні дозволи, дозволені для будь-якого названого користувача або об’єкта групи (знову ж таки, окрім об’єктів власника користувача та групи власників). Наразі дозвіл на читання дорівнює дозволу на читання наявної маски.

Тепер давайте додамо іншого користувача з другого запиту, підрядника, до ACL нашого файлу. Однак цього разу нам потрібно надати йому дозволи на читання та запис. Давайте подивимося, як це вплине на маску:

Тепер, окрім запису ACL менеджера (r), ми також бачимо запис підрядника (rw). Але чому запис маски змінився на читання та запис?

Коли ми додали користувача-підрядника з дозволами на читання та запис, це вплинуло на маску ACL, оскільки маска стосується максимально дозволених дозволів користувачів ACL і групових записів. Оскільки ми додали дозволи на запис до запису ACL користувача підрядника, маска також отримує дозвіл на запис.

Працюючи з ACL, ви побачите, що роль дозволів групового класу (наприклад, у виводі команди ls -l) перепризначена для відображення маски ACL. Однак не хвилюйтеся, дозволи власника групи все ще відображаються як запис ACL «власна група».

Майте на увазі, що якщо ви додаєте іншого користувача з меншою кількістю дозволів, наприклад, лише для читання, вони не успадковують дозволи маски, так само як користувач-менеджер не отримав дозволу на запис, коли ми додали запис ACL користувача-підрядника.

Раніше ProIT розповідав про 6 безкоштовних потужних креативних інструментів для Linux.

Нещодавно Document Foundation оголосила про загальну доступність LibreOffice 7.6.3 як третього випуску останньої серії безкоштовних офісних пакетів LibreOffice 7.6 із відкритим кодом.

Підписуйтеся на ProIT у Telegram, щоб не пропустити жодної публікації!

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