У меня есть система FreeNAS (FreeBSD) с общим ресурсом CIFS (называемая "библиотека"), поддерживаемая файловой системой ZFS. Общий ресурс настроен в соответствии с графическим интерфейсом FreeNAS для использования ACL-списков «Windows / Mac», что, как я считаю, означает ACL-списки NFSv4.

Вот как я хочу, чтобы основные ACL были:

nas# getfacl /mnt/big/library/test
# file: /mnt/big/library/test
# owner: DOMAIN\administrator
# group: DOMAIN\domain admins
            owner@:rwxpDdaARWcCo-:fd----:allow
            group@:rwxpDdaARWcCo-:fd----:allow
         everyone@:r-x---a-R-c---:fd----:allow

Который из графического интерфейса Windows 7 выглядит как "Полный контроль" для «DOMAIN \administrator» и «DOMAIN \Domain Admins» и "Чтение и выполнение" для "Все", унаследованный от корня общего ресурса. Windows даже правильно распознает владельца как "Администратора".

У меня две проблемы, которые, я думаю, могут быть связаны.

Во-первых, если я изменяю или создаю ACE для существующего объекта (файла или каталога), Windows заменяет owner@ ACE на имя для group:DOMAIN\administrator а в случае добавления создает группу ACE для group:DOMAIN\joe для Пользователь. Я не особо против того факта, что он думает, что пользователь - это группа (пока он работает), но замена владельца ACE - это боль, потому что теперь, если я поменяю владельца объекта, ACE все еще будет существовать для предыдущего владелец.

Второе неудобство - при создании нового объекта ACL выглядит так:

nas2# getfacl /mnt/big/library/test/New\ folder/
# file: /mnt/big/library/test/New folder/
# owner: DOMAIN\joe
# group: DOMAIN\domain users
            owner@:rwxpDdaARWcCo-:fd----:allow
            group@:rwxpDdaARWcCo-:fd----:allow
         everyone@:r-x---a-R-c---:fd----:allow

Хотя кажется, что он правильно унаследовал ACE, он не сохранил владельца или группу родительского каталога. Есть ли способ создать его со свойствами содержимого каталога?

Глядя на man-страницу setfacl, она заявляет:

 -d      The operations apply to the default ACL entries instead of access
         ACL entries.  Currently only directories may have default ACL's.
         This option is not applicable to NFSv4 ACLs.

Что для меня означает, что списки ACL NFSv4 не поддерживают ACE по умолчанию, что, по-видимому, является тем, что мне нужно для решения моей второй проблемы. Кто-нибудь знает, правильно ли это?

1 ответ1

2

Так что я не особо разбирался со всем этим, и я могу быть серьезно неправ, но вот несколько моментов, которые могут это объяснить:

  • ACL-списки NFSv4 похожи, но не совсем похожи на ACL-списки Windows/CIFS/NTFS.

    Например, формат Windows ACL не различает "пользовательский" или "групповой" или "специальный" SID. Поскольку NAS не знает, какие учетные записи есть в вашей системе Windows, он не может определить, какие SID являются пользователями, а какие группами, - он должен догадаться.

  • Однако, в то время как NFSv4 списки ACL не поддерживают POSIX-стиль "АСЕ по умолчанию", они поддерживают /CIFS стиле Windows " наследуемых" АСЕ; то есть каждая запись может быть наследственной или нет.

    В FreeBSD getfacl вы можете видеть флаги f и d которые соответствуют "наследуемым по файлам" и "наследуемым по каталогам".

    Существует также флаг i "только для наследования", который практически является точным эквивалентом ACE "по умолчанию" в ACL POSIX, то есть ACE наследуется, но не используется для самого каталога.

  • При создании файла он всегда принадлежит пользователю, который его создал. Это не наследуется.

    Если бы сервер CIFS работал под управлением Windows Server, он мог бы сделать встроенную группу "Администраторы" владельцем файла по умолчанию (еще раз обратите внимание, что он позволяет владельцу быть пользователем или группой, и ему не хватает владения группой). «).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .