Как проследить это, что имело “chmod 640” 'редактор “/etc/passwd” файл?

В дополнение к вызову процессов kill(2), некоторые сигналы отправляются ядром (или иногда самим процессом) при различных обстоятельствах:

  • Терминальные драйверы отправляют сигналы, соответствующие различным событиям:
    • Уведомления о нажатии клавиши: SIGINT (вернитесь к основному циклу) на Ctrl+C, SIGQUIT (выход сразу) на Ctrl + \, SIGTSTP (приостановите) на Ctrl+Z. Ключи могут быть изменены с stty команда.
    • SIGTTIN и SIGTTOU отправляются, когда фоновый процесс пытается читать или записать в его терминал управления.
    • SIGWINCH отправляется, чтобы сигнализировать, что размер окна терминала изменился.
    • SIGHUP отправляется, чтобы сигнализировать, что терминал исчез (исторически, потому что Ваш модем завис, в наше время обычно, потому что Вы закрыли окно эмулятора терминала).
  • Некоторые прерывания процессора могут сгенерировать сигнал. Детали являются архитектурой и системно-зависимый; вот типичные примеры:
    • SIGBUS для невыровненной памяти доступа;
    • SIGSEGV для доступа к неотображенной странице;
    • SIGILL для запрещенной команды (плохой код операции);
    • SIGFPE для инструкции с плавающей точкой с неверными аргументами (например. sqrt(-1)).
  • Много сигналов уведомляют целевой процесс, что некоторое системное событие произошло:
    • SIGALRM уведомляет, что истек таймер, установленный процессом. Таймеры могут быть установлены с alarm, setitimer и другие.
    • SIGCHLD уведомляет процесс, что один из его детей умер.
    • SIGPIPE сгенерирован, когда процесс пытается записать в канал, когда конец чтения был закрыт (идея - это, если Вы работаете foo | bar и bar выходы, foo уничтожается a SIGPIPE).
    • SIGPOLL (также названный SIGIO) уведомляет процесс, что произошло pollable событие. POSIX указывает pollable события, зарегистрированные через I_SETSIG ioctl. Много систем позволяют pollable события на любом дескрипторе файла, устанавливают через O_ASYNC fcntl флаг. Связанный сигнал SIGURG, который уведомляет относительно срочных данных по устройству (зарегистрированный через I_SETSIG ioctl) или сокет.
    • В некоторых системах, SIGPWR отправляется во все процессы, когда UPS сигнализирует, что сбой питания неизбежен.

Эти списки не являются исчерпывающими. Стандартные сигналы определяются в signal.h.

Большинство сигналов может быть поймано и обработано (или проигнорировано) приложением. Только два портативных сигнала, которые не могут быть пойманы, SIGKILL (просто умрите), и STOP (остановите выполнение).

SIGSEGV (отказ сегментации) и его кузен SIGBUS (ошибка шины) может быть поймана, но это - плохая идея, если Вы действительно не знаете то, что Вы делаете. Распространенное приложение для ловли их печатает отслеживание стека или другую отладочную информацию. Больше усовершенствованного приложения должно реализовать некоторое незавершенное управление памятью, или захватывать плохие инструкции в механизмах виртуальной машины.

Наконец, позвольте мне упомянуть что-то, что не является сигналом. Когда Вы нажимаете Ctrl+D в начале строки в программе, это читает вход из терминала, это говорит программе, что конец входного файла достигнут. Это не сигнал: это передается через ввод/вывод API. Как Ctrl+C и друзья, ключ может быть настроен с stty.

8
27.09.2011, 21:10
2 ответа

Dtrace был бы хорош, но он не портирован на AIX.

Необходимо смочь проследить то, что является chmoding файл с аудитом: http://www.ibm.com/developerworks/aix/library/au-audit/

7
27.01.2020, 20:12
  • 1
    I видит S_PASSWD_READ и S_PASSWD_WRITE, но что я должен установить для трассировки chown-луга? так есть ли какие-либо "S_PERMISSION"? :D - ty! –  LanceBaynes 25.09.2011, 17:09
  • 2
    , которое у меня нет системы AIX для проверки, но я предполагаю, что FILE_Mode должен быть хорошей подсказкой. –  jlliagre 25.09.2011, 21:15

Причина очень вероятна из-за того, что учетная запись ftp имеет значение /bin/false или аналогична оболочке по умолчанию:

$ getent passwd ftp
ftp:x:116:127:ftp daemon,,,:/srv/ftp:/bin/false

Вероятно, это не очень хорошая идея с точки зрения безопасности, но если вы хотите установить оболочку пользователя на что-то действительное, вы можете использовать chsh , например:

# chsh ftp /bin/bash
chsh ftp
Changing the login shell for ftp
Enter the new value, or press ENTER for the default
Login Shell [/bin/false]: /bin/bash
-121--161449-

С помощью awk можно попробовать что-то вроде,

awk 'NR % 4 == 1 {sub(/^/,">")} {print}' filename

Ссылки

https://stackoverflow.com/questions/2099471/add-a-prefix-string-to-beginning-of-each-line

-121--81293-

Сначала я бы открыл запись проблемы с IBM, так как это звучит как разбитый код и должно быть исправлено. У меня лично были только подобные проблемы с/etc/resolv.conf также не читаются другими, и когда он принадлежит root: система, которая может быть проблемой.

Указатель на подсистему аудита верен, хотя знаменитый URL-рандомизатор developerworks пробил, и приведенная выше ссылка больше не работает. Проверьте, например, http://www-01.ibm.com/support/knowledgecenter/ssw_aix_61/com.ibm.aix.security/monitor_file_access_realtime.htm или заархивированную страницу: https://web.archive.org/web/20080328022606/http ://www.ibm.com/developerworks/aix/library/au-audit/

Для выбора события попробуйте использовать FILE_Write и, возможно, дополнительно FILE_Mode, FILE_Privilege и/или FILE_Acl

0
27.01.2020, 20:12

Теги

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