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

Как сделать копию / proc / xxxxx?

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

tar czf 30333.tar.gz /proc/30333

все файлы пусты.

Вопрос

Как мне сделать копию /proc/30333?

Вот один скрипт, который позволяет ограничить размер сохраняемых файлов (здесь 32 или 64 МБ в зависимости от оболочки):

PID=30333
ulimit -f 65536
cd /proc/$PID || exit 1
find . -type d -exec sh -c 'mkdir -p /tmp/proc/$PID/$1' sh {} \;
find . -type f -exec sh -c 'cat $1 > /tmp/proc/'$PID'/$1' sh {} \;
tar czf /tmp/$PID.tgz /tmp/proc/$PID
rm -rf /tmp/proc/$PID

Удостоверься что /proc/30333/exe входит в то, что вы копируете. Не только символическая ссылка, но и сам исполняемый файл, на который она указывает.

Образ памяти также может быть полезен. Вы можете создать дамп ядра, набрав:

gdb
attach 30333
gcore

Решение

cp -r /proc/30333 /root
tar czf /root/30333.tar.gz /root/30333

/proc представляет собой виртуальную файловую систему и не имеет актуальный файлы, а скорее содержит информацию о процессах, запущенных в системе.