как прочитать файл построчно и удалить строку с номером менее 20% сценариев оболочки

Дело в том, что пользователь Apache был изменен для работы с правами root. Эта установка опасна и позволяет легко перерасти тривиальные взломы в root.

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

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

Ошибка это или нет, но вероятность того, что машина уже взломана, довольно высока. (несколько раз?)

Также довольно часто мошеннический системный администратор или злоумышленник оставляет пользователя с идентификатором 0. Идентификатор 0 дает любому пользователю привилегии root.

Я бы не стал ждать никакого переселения; на данном этапе игры вопрос не в смене идентификатора пользователя.

Я бы немедленно изменил идентификатор, пароль пользователя apache _(, если таковой имеется ), и оболочку bash этого пользователя на /bin/nologin. Однако у возможного хакера уже могут быть альтернативные записи.

Сделайте образ/резервную копию этого и как можно скорее переустановите этот сервер.

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

Рассмотрите возможность найма опытного консультанта для оценки всех ваших систем. Этот сервер может быть точкой входа в вашу внутреннюю структуру -.

Существует также удаленный вариант, возможно, это было сделано как небрежный способ не управлять разрешениями пользователей.Будьте готовы к тому, что ваши сайты или какая-то непонятная функциональность загадочным образом выйдет из строя после удаления привилегий root у пользователя apache.

0
29.10.2019, 19:53
3 ответа

Сgrep:

grep -e "^%" -e "^[2-9][1-9]" file | column -t

column -tчтобы было красиво:

%CPU  PID   USER   UID   COMMAND      %MEM
71    9136  ashti  1000  firefox      4.6
36    1432  ashti  1000  gnome-shell  8.6
25    9100  ashti  1000  gedit        1.1
2
28.01.2020, 02:22

С сохранением заголовка, awkвыражение:

$ awk 'NR==1 || (NR > 1 && $1 > 20)' file
%CPU   PID USER       UID COMMAND         %MEM
71  9136 ashti     1000 firefox          4.6
36  1432 ashti     1000 gnome-shell      8.6
25 9100 ashti     1000 gedit            1.1
1
28.01.2020, 02:22

Цикл forне подходит для этой задачи -для обсуждения причин см., например,

Мой личный выбор — Миллер:

$ mlr --pprint filter -x '${%CPU} < 20' file > newfile

$ cat newfile
%CPU PID  USER  UID  COMMAND     %MEM
71   9136 ashti 1000 firefox     4.6
36   1432 ashti 1000 gnome-shell 8.6
25   9100 ashti 1000 gedit       1.1
0
28.01.2020, 02:22

Теги

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