Как узнать, что изменяет разрешение каталогов на Linux?

У нас есть сервер Ubuntu 12.04 / apache и каталог в разрешениях «/ var / www / foo» и root.

Что-то неоднократно меняет разрешение этого каталога.

Вопрос : Как мы можем расследовать, что меняет разрешение?

  • Членство в группах и процессы setuid / setgid
  • Каталог noexec on / tmp и / var / tmp
  • В чем преимущество файлов .desktop без бита исполняемого бита?
  • Один файл хочет принадлежать двум пользователям. Как? Жесткая привязка не работает
  • Предотвратите случайное удаление файла
  • Когда член нескольких групп, как мне установить группу по умолчанию для вновь созданных файлов?
  • Изменение разрешения чтения только в Linux?
  • контролировать изменения разрешения файлов
  • 2 Solutions collect form web for “Как узнать, что изменяет разрешение каталогов на Linux?”

    Вы можете исследовать с помощью аудита, чтобы найти это. В ubuntu пакет называется auditd .

    Используйте эту команду для начала расследования, если файл или папка:

     auditctl -w /var/www/foo -pa 
    • -w означает просмотр файла / папки
    • -pa означает следить за изменениями в атрибутах файлов

    Теперь запустите tail -f /var/log/audit/audit.log . При изменении атрибутов в файле журнала вы увидите что-то подобное:

     type=SYSCALL msg=audit(1429279282.410:59): arch=c000003e syscall=268 success=yes exit=0 a0=ffffffffffffff9c a1=23f20f0 a2=1c0 a3=7fff90dd96e0 items=1 ppid=26951 pid=32041 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts5 ses=4294967295 comm="chmod" exe="/bin/chmod" type=CWD msg=audit(1429279282.410:59): cwd="/root" type=PATH msg=audit(1429279282.410:59): item=0 name="/var/www/foo" inode=18284 dev=00:13 mode=040700 ouid=0 ogid=0 rdev=00:00 

    Я выполнил chmod 700 /var/www/foo чтобы вызвать его.

    • В 1-й строке вы видите
      • какой исполняемый файл выполнил: exe="/bin/chmod"
      • pid процесса: pid=32041
      • Вы также можете узнать, какой именно пользователь: uid=0 , root в моем случае.
    • В третьей строке вы видите измененный режим: mode=040700

    Я не думаю, что есть какой-либо способ ответить, как вы могли знать, что изменило разрешения в прошлом, но вы можете использовать команду lsof, чтобы узнать, какой пользователь или процесс использует файл в любой момент времени. Вы можете попробовать положить это на cron и, возможно, поймать. Если что-то случайно изменяет ваши права на файл и вы не знаете, что это такое, его может быть очень сложно найти.

    Вы можете запретить изменения ваших файлов с помощью команды chattr. Chattr блокирует файл, чтобы даже корневые пользователи не могли изменять его, не запускав при этом соответствующую команду chattr.

    chattr + i filename (Сделать свойства имени файла «неизменяемым», отметить, что никто не может записать в файл) chattr -i filename (Удалить неизменяемый флаг, чтобы можно было снова изменить права собственности на файл и разрешения).

    Interesting Posts

    systemd-networkd не запускается при загрузке сети через pxelinux

    Gnome 3: как установить кнопку питания для выключения вместо приостановки?

    Как изменить данную строку терминала?

    Какую файловую систему использовать во встроенном статическом устройстве?

    найти максимальное значение столбца 1 и распечатать соответствующую запись из столбца 2 из файла

    clamd случайно останавливается

    Как обновить пакет с более новой версией, чем репозиторий?

    Что такое hotplug?

    замените символ из строки, которая находится между первым и вторым поиском, используя sed или awk

    Выбор правильного установщика Debian

    Как получить время выполнения графического процессора скрипта в оболочке?

    Ошибка файловой системы только для чтения при доступе к файлам на Ubuntu

    Пользовательские данные в evince и cups

    Krita не будет рисовать, используя планшет, но с трекпадом / мышью

    Мгновенный поиск в меньшей команде? (Подобно incsearch в VIM)

    Linux и Unix - лучшая ОС в мире.