ACLs - одинаковые acl'ы на все вновь созданные файлы автоматически

Нет, каждое ядро ​​реализует свои собственные функции по-своему. Существует большая часть совместимости с POSIX, но как только вы выйдете из нее, исполняемые файлы должны быть скомпилированы с уже имеющимися механизмами ядра. Многие проекты содержат исходный код, который компилируется только в том случае, если вы явно указываете, что компилируете для FreeBSD или Linux. По сути, это и есть kFreeBSD. Инструменты поддерживают ядро ​​FreeBSD, но для этого они должны быть скомпилированы.

Например, если вы попытаетесь использовать epoll_create во FreeBSD, все будет работать не так, как ожидалось.

Конечно, вы можете кросс-компилировать инструменты из системы BSD в стиле LFS, но это, вероятно, займет вечность. Не так просто, как просто скомпилировать новое ядро.

2
14.04.2017, 15:01
2 ответа

Это работает как надо.

man acl имеет следующее сказать о ACL по умолчанию:

ACL TYPES

Каждый объект может рассматриваться как связанный с ним ACL, который управляет дискреционным доступом к нему. объект; этот ACL называется ACL доступа. Кроме того, каталог может иметь связанный ACL , который управляет начальным ACL доступа для объектов, созданных в этом каталоге ; этот ACL называется ACL по умолчанию.

(выделено мной)

Что вы указали в вашем ACL, так это то, что только владелец имеет права доступа rwx к каталогу. ACL по умолчанию для каталога определяет следующее:

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

Если вы измените права доступа к родительскому каталогу или добавите ACL группы / пользователя, который разрешает доступ , то все файлы внутри будут работать должным образом.

1
27.01.2020, 22:10

В вашей системе файлы в /tmp исчезают при перезагрузке, верно? Возможно, это не лучшее место для постоянного решения. При установке ACL на каталог, который должен применять ACL ко всем новым объектам файловой системы в каталоге, не забудьте установить две маски: (1) маску для самого каталога и (2) маску по умолчанию (для всех новых объектов файловой системы).

setfacl -m u::rwx,g::r-x,o::--- /tmp/test
setfacl -d -m u::rwx,g::r-x,o::--- /tmp/test

Выше, переключатель -m является маской для /tmp/test, а переключатель -d делает эту маску маской по умолчанию для всех новых объектов файловой системы в том же каталоге. Это эквивалентно 0750. Также могут использоваться восьмеричные значения.

Маски пользователя, группы и другие работают аналогичным образом: g:groupname:--- или в комбинации: u:username:---,g:groupname:---,o::---. Если не указывать имя пользователя или имя группы, маска применяется к текущему владельцу пользователя/группы.

Имейте в виду, что не все программное обеспечение знает ACL. Например, не все клиенты SFTP/SCP знают о них.

3
27.01.2020, 22:10

Теги

Похожие вопросы