Это - ответ, который я записал в предыдущий вопрос:
Обычно, если Вы хотите знать то, что процесс/пользователь/файл обходится без необходимости выполнить 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 контролирующие правила, часы не влияют на производительность на основе количества правил, отправленных в ядро.
Да, acl могут это сделать.
Убедитесь, что ваша файловая система смонтирована с помощью 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 /
Установите утилиты acl. В ubuntu / debian это:
sudo apt-get install acl
Ваши новые друзья - setfacl
и getfacl
. Используйте setfacl
, чтобы изменить acl по умолчанию для каталога:
setfacl -d -mo: r foo
-d
устанавливает значение по умолчанию, -m
изменяет acl, а o: r
предоставляет «другим» право на чтение. Установка по умолчанию для каталога примерно эквивалентна установке setgid для каталога, но вместо вновь созданных файлов, наследующих группу, они наследуют acl. Вместе, setgid и acl могут быть мощными, потому что вы можете предоставить разрешения по умолчанию для группы и получить новые созданные файлы, которые принадлежат к этой группе, для эффективной групповой маски для каждого каталога.
Проверьте свою работу: ls -l
теперь должен отображать дополнительный знак «+», указывающий на наличие acl в дополнение к стандартным разрешениям файла.
% ls -la foo /
drwxr - r - +
Вы можете получить подробную информацию о acl, используя getfacl
.
% getfacl foo
# файл: foo
# владелец: вы
# группа: вы
пользователь :: rwx
группа :: r--
другое :: r--
по умолчанию: user :: rwx
по умолчанию: group :: ---
по умолчанию: другое :: r--
Вы также можете принудительно установить umask для каталога, установив свойство ACL маски следующим образом:
setfacl -d -m mask:07 .