Я могу переопределить свой umask, использующий ACLs для создания всех файлов созданными в данном мире каталога читаемый?

Это - ответ, который я записал в предыдущий вопрос:

Обычно, если Вы хотите знать то, что процесс/пользователь/файл обходится без необходимости выполнить lsof против него 24/7, Вы используете auditctl.

Принятие Вас имеет управление аудитом ядра недавнего выхода, должна быть простая операция. (Это находится в Debian-fu, если Вы работаете, Red Hat переводят как соответствующий),

# apt-get install auditd

Удостоверьтесь что его выполнение (/etc/init.d/auditd состояние).

auditctl -a entry,always -F arch=b64 -S open -F pid=<process id>

Замените b64 b32 при выполнении 32-разрядной дуги открытый может быть заменен любым системным вызовом или словом 'все'

Для более чтения auditctl страница справочника.

Можно использовать этот метод и попросить, чтобы это наблюдало за 'удалить связь' системным вызовом.

-w параметр полезен для наблюдения файлов/каталогов, но, поскольку страница справочника объясняет, что существуют протесты.

- w путь Вставляют часы для объекта файловой системы в пути. Вы не можете вставить часы в высокоуровневый каталог. Это запрещается ядром. Подстановочные знаки не поддерживаются ни один и генерируют предупреждение. Путь, который следит за работой, путем отслеживания inode внутренне. Это означает, что при помещении часов на каталог Вы будете видеть то, что, кажется, события файла, но это - действительно просто обновление метаданных. Вы могли бы пропустить несколько событий путем выполнения этого. Если необходимо наблюдать все файлы в каталоге, его рекомендуемый для размещения отдельных часов в каждый файл. В отличие от syscall контролирующие правила, часы не влияют на производительность на основе количества правил, отправленных в ядро.

11
задан 12 January 2012 в 23:45
3 ответа

Да, acl могут это сделать.

  1. Убедитесь, что ваша файловая система смонтирована с помощью acl. Чтобы проверить это, введите mount . Вы можете увидеть 'acl' в списке среди других разрешений, например:

     / dev / sda1 on / type ext4 (rw, errors = remount-ro, acl)
    

    Если он не смонтирован с помощью acl, откройте / etc / fstab и добавьте acl в список опций:

     # / etc / fstab: информация о статической файловой системе.
    #
    # <файловая система> <точка монтирования> <тип> <параметры> <дамп> <пароль>
    / dev / sda1 / ext3 noatime, ошибки = remount-ro, acl 0 1
    

    Теперь перемонтируйте работающую файловую систему с новыми параметрами:

     mount -v -o remount /
    
  2. Установите утилиты acl. В ubuntu / debian это:

     sudo apt-get install acl
    
  3. Ваши новые друзья - setfacl и getfacl . Используйте setfacl , чтобы изменить acl по умолчанию для каталога:

     setfacl -d -mo: r foo
    

    -d устанавливает значение по умолчанию, -m изменяет acl, а o: r предоставляет «другим» право на чтение. Установка по умолчанию для каталога примерно эквивалентна установке setgid для каталога, но вместо вновь созданных файлов, наследующих группу, они наследуют acl. Вместе, setgid и acl могут быть мощными, потому что вы можете предоставить разрешения по умолчанию для группы и получить новые созданные файлы, которые принадлежат к этой группе, для эффективной групповой маски для каждого каталога.

  4. Проверьте свою работу: ls -l теперь должен отображать дополнительный знак «+», указывающий на наличие acl в дополнение к стандартным разрешениям файла.

    % ls -la foo /
    drwxr - r - +
    

    Вы можете получить подробную информацию о acl, используя getfacl .

    % getfacl foo
    # файл: foo
    # владелец: вы
    # группа: вы
    пользователь :: rwx
    группа :: r--
    другое :: r--
    по умолчанию: user :: rwx
    по умолчанию: group :: ---
    по умолчанию: другое :: r--
    
13
ответ дан 2 December 2019 в 21:52

Просто установите OnDir и настройте его должным образом в соответствии с вашими потребностями. Я ответил на аналогичную проблему, расположенную здесь .

-4
ответ дан 2 December 2019 в 21:52

Вы также можете принудительно установить umask для каталога, установив свойство ACL маски следующим образом:

setfacl -d -m mask:07 .
2
ответ дан 2 December 2019 в 21:52

Теги

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