iptables -L -nv
Это выводит конфигурацию вашего брандмауэра.
apt update
yum install nmap
Это устанавливает инструмент nmap, который является мощным сканером портов, очень полезным.
nmap -Ss -O 89.169.183.2
nmap -O 89.169.183.2
Эти команды сканируют компьютер по IP-адресу 89.169.183.2. -Ss ищет открытые порты TCP, а -O пытается идентифицировать операционную систему и версию этого компьютера.
Anyone have any idea what these commands mean and what type of action I should take on the server?
Вам необходимо немедленно связаться с вашим поставщиком услуг хостинга и узнать, несет ли его системный администратор ответственность за выполнение этих команд на вашем сервере. Если они уверены , что это были их действия, вы можете вежливо попросить их сообщать вам в будущем, когда они будут использовать root в вашей системе, но все в порядке.
Если поставщик услуг хостинга сообщает вам, что никто из его сотрудников не выполнял команды от имени пользователя root в вашей системе, вам необходимо сообщить им, что система была взломана, а затем либо заставить их помочь вам восстановить его на заведомо исправную резервную копию, сделанную до того, как система была скомпрометирована, или (предпочтительнее)сжечь ее дотла и восстановить с нуля .
Никогда больше не используйте то, что вы использовали в качестве пароля root в этой системе для чего-либо .
Использовать Замена процесса не трубы:
{ echo "foo" ; echo "bar" >&2; } 2> >(sed "s/^/err: /") > >(sed "s/^/out: /")
err: bar
out: foo
Если вы делаете это в скрипте, используйте команду exec
для настройки перенаправления на все время скрипта:
bash -c '
exec 2> >(sed "s/^/err: /") > >(sed "s/^/out: /")
echo foo
echo bar >&2
'
err: bar
out: foo
Если да
exec > >(sed "s/^/out: /") 2> >(sed "s/^/err: /")
, тогда вывод
out: foo
out: err: bar
Я предполагаю, что это то, что вы подразумеваете под "не работает". Это связано с тем, что вывод подстановки процесса «err» по умолчанию идет на стандартный вывод, и теперь он указывает на подпроцесс «out». Вам нужно будет сделать это, чтобы обойти это:
exec 3>&1 > >(sed "s/^/out: /") 2> >(sed "s/^/err: /" >&3)
Создайте еще один файловый дескриптор (3 ), указывающий на стандартный вывод по умолчанию,затем перенаправление stderr печатает на fd3.
Последующий вопрос отвечает сам на себя при выполнении:
Функция err
также выводит на стандартный вывод. Очевидно, что первая форма имеет исходный стандартный вывод, а вторая уже использует функцию «перенаправление на выход ()».
Это должно работать в любой стандартной оболочке, а не только в bash:
{ cmd 2>&1 >&3 | sed 's/^/err: /' >&2; } 3>&1 | sed 's/^/out: /'
Для удобства это можно превратить в функцию:
# usage louterr cmd [args...]
louterr(){ { "$@" 2>&1 >&3 | sed 's/^/err: /' >&2; } 3>&1 | sed 's/^/out: /'; }
cmd(){ echo ERR >&2; echo OUT; }
louterr cmd
out: OUT
err: ERR
louterr louterr louterr cmd
err: err: err: ERR
out: out: out: OUT
или с настраиваемыми «фильтрами»:
# usage: louterrx out_filter err_filter cmd [args...]
louterrx(){
oflt=$1; eflt=$2; shift; shift
eval "{ \"\$@\" 2>&1 >&3 | $eflt >&2; } 3>&1 | $oflt"
}
louterrx "sed 's/^/out: /'" "sed 's/^/err: /'" cmd
Недостатком этого является то, что статус выхода cmd
будет скрыт (, как и любая правая часть конвейера ). Чтобы обойти это, вы можете использовать подоболочку и set -o pipefail
(, поддерживаемую в bash
, zsh
, ksh
и т. д., но пока не в dash
):
louterr()(
set -o pipefail
{ "$@" 2>&1 >&3 | sed 's/^/err: /' >&2; } 3>&1 | sed 's/^/out: /'
)
cmd(){ echo ERR >&2; echo OUT; return 13; }
louterr cmd; echo $?
out: OUT
err: ERR
13
Я не рекомендую использовать > >(...)
zsh/bash -изм в этом случае, так как он зависит от особенностей, связанных с порядком, в котором расширения и перенаправления выполняются в разных оболочках (, и подлежит много других причуд и ошибок). Например, в
ls no_such_file >/dev/null 2> >(cat)
выводcat
(сообщение об ошибкеls
)будет перенаправлено на /dev/null
в bash
, но не в zsh
.
~единственная ситуация, когда вы должны использовать форму cmd > >(...)
, — это когда cmd
— это функция, целью которой является изменение текущей среды и которая не может быть запущена в подоболочке.