Назад | Перейти на главную страницу

/ etc / passwd постоянно доступен

Я использую сервер на EC2 (Cent OS, 2.6.35.14, x86_64), и недавно я превысил свою квоту в 1 миллион операций ввода-вывода в месяц, что абсурдно, поскольку использование моего диска не должно приближаться к этому. (Я не использую какие-либо службы, которые требуют большого доступа к диску .... или даже доступа к диску)

Моей первой мыслью было запустить iotop и посмотреть, есть ли какие-нибудь процессы, непрерывно записывающие на диск. iotop показал мне, что процесс с именем jbd2 записывал на диск чаще, чем раз в минуту.

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

Я установил inotify-tools и запустил inotifywait для всей файловой системы;

sudo /usr/local/bin/inotifywait -m -r /!(dev|proc)

И это показало, что / etc / passwd открывается, обращается к нему и затем закрывается несколько раз в минуту. Без моих действий в системе! inotify не говорит вам какие процесс трогает, но я установил аудит (http://people.redhat.com/sgrubb/audit/), настройте вход в / etc / passwd и дайте ему немного поработать, а затем посмотрел журналы, но все, что они мне говорят, это то, что к нему обращается sudo: (имя пользователя отредактировано)

type=SYSCALL msg=audit(10/03/2011 17:48:30.493:260) : arch=x86_64 syscall=open success=yes exit=4 a0=7f809205669a a1=80000 a2=1b6 a3=0 items=1 ppid=6466 pid=6467 auid=**** uid=root gid=**** euid=root suid=root fsuid=root egid=**** sgid=**** fsgid=**** tty=pts0 ses=79 comm=sudo exe=/usr/bin/sudo key=(null) 
type=SYSCALL msg=audit(10/03/2011 17:48:30.493:261) : arch=x86_64 syscall=open success=yes exit=4 a0=7f809205669a a1=80000 a2=1b6 a3=0 items=1 ppid=6466 pid=6467 auid=**** uid=root gid=**** euid=root suid=root fsuid=root egid=**** sgid=**** fsgid=**** tty=pts0 ses=79 comm=sudo exe=/usr/bin/sudo key=(null) 
type=SYSCALL msg=audit(10/03/2011 17:48:30.488:256) : arch=x86_64 syscall=open success=yes exit=3 a0=7f809205669a a1=80000 a2=1b6 a3=0 items=1 ppid=6441 pid=6466 auid=**** uid=**** gid=**** euid=root suid=root fsuid=root egid=**** sgid=**** fsgid=**** tty=pts0 ses=79 comm=sudo exe=/usr/bin/sudo key=(null)
...

Есть ли способ сузить круг вопросов? У меня нет ничего в моих файлах cron, и никакие другие службы, о которых я могу думать, не могли бы вызвать это:

chkconfig | grep on
atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
cgconfig        0:off   1:off   2:off   3:off   4:off   5:off   6:off
cloud-init      0:off   1:off   2:on    3:on    4:on    5:on    6:off
cloud-init-user-scripts 0:off   1:off   2:on    3:on    4:on    5:on    6:off
conman          0:off   1:off   2:off   3:off   4:off   5:off   6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
irqbalance      0:off   1:off   2:off   3:on    4:on    5:on    6:off
lvm2-monitor    0:off   1:on    2:on    3:on    4:on    5:on    6:off
mdmonitor       0:off   1:off   2:on    3:on    4:on    5:on    6:off
netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
netfs           0:off   1:off   2:off   3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
ntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
restorecond     0:off   1:off   2:off   3:off   4:off   5:off   6:off
rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off
sendmail        0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off
yum-updatesd    0:off   1:off   2:on    3:on    4:on    5:on    6:off

Поскольку вы используете CentOS, вы сможете узнать, что делает sudo, заглянув в /var/log/secure например

sudo tail /var/log/secure

4 октября 03:45:44 ec2-centos-instance sudo: iain: TTY = pts / 0; PWD = / home / iain; ПОЛЬЗОВАТЕЛЬ = корень; КОМАНДА = / usr / bin / tail / var / log / secure

Изменить: обновление с ответом из комментариев

Включение блочного дампа:echo 1 > /proc/sys/vm/block_dump и взгляните на это с помощью dmesg, который помог отследить, какие процессы обращались к диску. Намного надежнее, чем iotop. Оказывается, sar работал постоянно, записывая в / var / log / sa / saXX, поэтому я отключил его в cron.d, и снова все в порядке

Похоже, у вас есть скрипт или программа, использующая sudo для выполнения каких-либо действий от имени пользователя root. Вы можете включить вход в sudo, чтобы выяснить, что они пытаются сделать, и найти лучшее решение (возможно, двоичный файл setuid подойдет). Вот дополнительная информация о sudo (например, как включить ведение журнала):

http://aplawrence.com/Basics/sudo.html