TGViewer
🐧 Linux Junior. Программирование под Linux. 🐧 Linux Junior. Программирование под Linux. @juniorlinux · 3.08K subscribers
Post #544 1.3K
🔥 Расширенные права доступа (ACL) в Linux

Обычная модель прав в Linux проста: есть владелец, группа и все остальные. Для большинства случаев этого хватает, но не всегда.

А что если нужно, чтобы user1 и user2 имели разные права к одному и тому же файлу? Или чтобы у определённого пользователя был доступ только к подкаталогу?
Тут на сцену выходит ACL — Access Control List.

✔️ Что такое ACL

ACL позволяет задавать права не только для владельца и группы, а для любого пользователя или группы. Это похоже на “дополнительный слой” поверх обычных разрешений.

🔍 Проверка наличия ACL

Посмотрим на файл:

ls -l report.txt
-rw-r-----+ 1 marina staff 2048 Oct 22 11:20 report.txt


Плюсик + после прав (rw-r-----+) говорит, что у файла есть ACL.

Подробнее:

getfacl report.txt


Результат может выглядеть так:

# file: report.txt
# owner: marina
# group: staff
user::rw-
user:john:r--
group::r--
mask::r--
other::---


Мы видим, что кроме владельца и группы, есть отдельная запись для пользователя john.

✏️ Назначение ACL

Выдать пользователю john права на чтение файла:

setfacl -m u:john:r file.txt


Выдать группе designers права на запись:

setfacl -m g:designers:rw file.txt


❌ Удалить конкретную запись ACL:

setfacl -x u:john file.txt


Сбросить все расширенные права (оставив только базовые chmod-права):

setfacl -b file.txt


🗂 Установка ACL по умолчанию для каталога

ACL можно "прикрепить" к каталогу, чтобы новые файлы наследовали права автоматически.

Пример: всем пользователям группы team разрешить читать и писать в каталог /srv/docs:

setfacl -d -m g:team:rw /srv/docs


Теперь любой файл, созданный внутри /srv/docs, получит те же права.

🟢 Полезно знать

mask в выводе getfacl — это "ограничитель" максимальных разрешений ACL. Даже если пользователю выданы права rwx, но в качестве mask стоит rw-, то выполнение будет заблокировано.

Маску можно менять отдельно:

setfacl -m m:rw file.txt


⚙️ Пример из жизни

Пусть в /var/www/project лежит сайт, над которым работают два человека: admin и editor. Админ имеет полный доступ, а редактор — только чтение и запись контента:

chown -R admin:admin /var/www/project
setfacl -R -m u:editor:rw /var/www/project/content
setfacl -d -m u:editor:rw /var/www/project/content


Первая команда setfacl назначает права доступа для уже существующих файлов и каталогов в /var/www/project/content. Вторая устанавливает шаблон прав, который унаследуют будущие файлы и папки, созданные в /var/www/project/content.

Теперь editor сможет редактировать файлы в /content (в том числе и все созданные в дальнейшем), но не затронет код приложения.
More from @juniorlinux
  1. Sep 28, 2026⚙️ Как устроена автоматизация задач через cron в Linux Если вам нужно регулярное выполнени…
  2. Sep 22, 2026По умолчанию rsync только добавляет и обновляет файлы, но не трогает то, что было удалено…
  3. Sep 22, 2026❓ Как удалить на приемнике файлы, которых больше нет в источнике, при синхронизации через…
  4. Sep 16, 2026Post #589
  5. Sep 10, 2026Как распаковать .tar.gz, .tar.bz2, .tar.xz и .tar.zst в Linux Для работы с архивами в Linu…
  6. Sep 4, 2026Посмотреть очередь задач, созданных через at, можно командой atq (или at -l). Она выведет…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →