Я не могу понять, как вырезать этот файл и найти уникальные слова определенного раздела

Команды, которые пользователь может sudo ограничить в конфигурации sudo . Sudo не обязательно должен быть эквивалентом root.

В противном случае, я думаю, вы сами ответили на свой вопрос - если у меня есть ключи от курятника, а мистер Фокс получит мои ключи, то я смогу съесть всех цыплят. Для этого нет решения.

Однако есть как минимум такие инструменты, как tripwire или ossec , которые предупреждают вас об установке руткита. См. Здесь .

0
10.04.2018, 05:56
2 ответа

Вот обзор -образца, который вы предоставили.

awkраспечатывает столбцы и строки, которые вы можете указать. Я предлагаю просмотреть страницу manи Google для получения дополнительной информации. В вашем случае разделителем является пробел, который будет разделять каждый столбец. Это будет варьироваться, потому что в том, что вы предоставили до сих пор, каждая строка имеет разный текст, что сделает позиционирование столбцов другим, но для ваших первых трех строк вы можете начать со следующего:

cat access_log | awk 'NR==1,NR==3 {print $7}' | sort -u

NR==1,NR==3Вывод строк с 1 по 3

{print $7}Распечатывает седьмой столбец с нужным вам именем файла. Имейте в виду, что это не всегда будет седьмой столбец, потому что текст в каждой строке может быть разным.

sort -uРаспечатка уникальных значений

Вывод:

/robots.txt
/~robert/class2.cgi
/~robert/class3.cgi

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

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

cat access_log | awk 'NR==1 {print substr($7,2,10)} NR==2,NR==3 {print substr($7,10,10)}'

Вывод будет:

robots.txt
class2.cgi
class3.cgi

Объяснить:

NR==1 {print substr($7,2,10)}Для первой строки в поле 7, начиная со 2-й позиции, выводится 10 символов.

NR==2,NR==3 {print substr($7,10,10)}Для строк со второй по третью в поле 7, начиная с десятой позиции, печатается 10 символов.

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

0
28.01.2020, 04:26

альтернатива, которая даст вам подсчет каждого уникального обращения к файлу:

awk '{print $7}' access_log | sort | uniq -c | sort -rn

или, если вам нужны хиты в определенный день, вы можете сначала найти дату:

fgrep "14/Dec/2015" access_log | awk '{print $7}' | sort | uniq -c | sort -rn

несколько уместно, вы можете использовать приведенное выше, чтобы найти уникальных посетителей (по крайней мере уникальных IP-адресов в любом случае )для вашего сайта, изменив печать с 7 долларов на 1 доллар. Я лично использую те же команды, когда мои сайты подвергаются DoS-атаке, чтобы определить, какие IP-адреса блокировать сеть.

0
28.01.2020, 04:26

Теги

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