Удалить сразу несколько файлов с определенным форматированием

Кейлоггер не будет пытаться подделать приглашение оболочки, он почти наверняка оставит фоновый процесс, который отслеживает /dev/input или что-то подобное (он также попытается скрыть себя в списке процессов). Вы определенно смотрите на проблему с неправильной стороны.

Обычным способом запуска ненадежных двоичных файлов является создание виртуальной машины и запуск их там. Даже это не дает 100% безопасности, но часто считается достаточно безопасным для практического использования (конечно, вы не будете запускать виртуальные машины с недоверенным кодом на рабочем сервере или внутри защищенной сети в банке).

1
08.03.2017, 17:56
3 ответа

Поскольку ваши данные хорошо табулированы, быстрый awk выполнит большую часть вашей работы:

awk 'NR>2 && $7=="Suspended" {print "sessionID{"$3"}"}' /etc/nxserver.log | xargs rm -f

Чтобы увидеть список файлов, которые он удалит перед запуском, используйте только:

awk 'NR>2 && $7=="Suspended" {print "sessionID{"$3"}"}' /etc/nxserver.log
1
27.01.2020, 23:34
cd "/var/lib/nxserver/db/running" && \
perl -lne '
   @F = unpack "x25A32x31A12";
   unlink "sessionId{$F[0]}" if $F[1] eq "Suspended";
' /etc/nxserver.log

unpack пропускает первые 25 символов, затем захватывает следующие 32 = sessionId, и аналогичным образом захватывает поле состояния. Наконец, unlink удаляет файл.

0
27.01.2020, 23:34

Надеюсь, я правильно понял: вы хотите удалить все файлы с идентификаторами сессий, перечисленными как приостановленные? Это было бы

for SessionID in `sed -n '/Suspended/s/.*unix-gnome *\(\S*\).*/\1/p' /etc/nxserver.log`; do
  rm  /var/lib/nxserver/db/running/sessionId\{$SessionID\}
done

Скрипт sed извлекает идентификаторы сессий из приостановленных сессий, для каждой из которых удаляется соответствующий файл.

Если это не то, что вы хотите, пожалуйста, уточните свой вопрос.

1
27.01.2020, 23:34

Теги

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