У меня есть файловая система NFS4 с настройкой аутентификации на основе AD и соответствующими ACLS. Я контролирую доступ к машинам, которые монтируют файловую систему, поэтому списки ACL очень простые. Один запрещает пользователям переименовывать или удалять папки на родительском уровне. Второй ACL дает «Всем» и «Пользователям домена» полный доступ к «Подпапкам и файлам»
, у меня проблема в том, что в одной из подпапок есть файл * .pax.gz. Если я войду в клиент Linux и компакт-диск с этой папкой, я могу увидеть файл и правильные разрешения. Если я запустил gunzip «filename», он затем создаст файл * .pax, но разрешения «Все» и «Пользователи домена» исчезнут, и я стать владельцем этого файла.
Можно ли установить ACL или что-то еще, что в конечном итоге приведет к тому, что файл * .pax с теми же разрешениями, что и файл * .pax.gz?
Вам необходимо добавить ACE в родительский каталог с помощью флагов 'f' и 'd' , чтобы принудительно унаследовать вновь созданные файлы и каталоги от этих ACE .
из справочной страницы nfs4_acl:
ФЛАГИ НАСЛЕДОВАНИЯ - могут использоваться в любом каталоге ACE d directory-inherit - вновь созданные подкаталоги унаследуют ACE. f file-inherit - вновь созданные файлы унаследуют ACE за вычетом его флагов наследования. Недавно созданные подкаталоги унаследует ACE; если наследование каталога также не указано в родительском элементе управления доступом, только наследование будет добавлено к унаследовал ACE. n без распространения-наследования - вновь созданные подкаталоги унаследуют ACE за вычетом его флагов наследования. я только наследование - ACE не учитывается при проверке разрешений, но является наследуемым; однако флаг только наследования удаляется из унаследованных ACE.
Это должно решить проблему:
sudo -u <current file owner> -g "Domain Users" gunzip *.pax.gz
Причина, по которой вам нужно сделать это таким образом, - когда вы распаковываете что-то, программа загружает gz в память, распаковывает его, записывает распакованную версию на диск как новый файл 1 и отключает (удаляет) старую версию.
[1]:Когда вы создаете новый файл, пользовательский контекст, в котором вы находитесь, является владельцем, а их основная группа - это группа указанного файла, -g заставляет sudo изменить основную группу для этого сеанса.
Разрешение пользователям без полномочий root сделайте следующее:
Создайте системную группу пользователей, которым вы хотите разрешить использовать gunzip, в этом примере мы назовем ее «gunzip».
visudo
Добавить строку:
%gunzip ALL=(ALL) NOPASSWD:NOEXEC: gunzip
Сохранить и выйти
Чтобы правильно хранить и восстанавливать информацию метаданных в виде списков управления доступом и т.п., вы должны использовать tar -pzcf
и tar -pzxf
вместо простого ] gz
или gunzip