Bug 49803

Summary: Нет поддержки переадресаций на устройства /dev/<tcp|udp>/host/port
Product: Sisyphus Reporter: Анатолий Кирсанов <kiav1976>
Component: bashAssignee: placeholder <placeholder>
Status: NEW --- QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P5 CC: amakeenk, ennio, glebfm, ldv, max.gordeef, placeholder
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Анатолий Кирсанов 2024-03-26 19:46:05 MSK
Нужны они для скрипта https://testssl.sh
При его работе возникают вот такие ошибки:

/dev/tcp/xxx.xxx.xxx.xxx/587: Нет такого файла или каталога

Unable to open a socket to xxx.xxx.xxx.xxx:587. 
Fatal error: Can't connect to "xxx.xxx.xxx.xxx:587"
Make sure a firewall is not between you and your scanning target!

Поиск по интернетикам показал, что это функционал именно bash, а не ядра и прочего.

Наводка на ответ тут https://unix.stackexchange.com/questions/241174/dev-tcp-not-found

Официальная документация по фиче тут https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Redirections

Выдержка из раздела:

/dev/tcp/host/port

    If host is a valid hostname or Internet address, and port is an integer port number or service name, Bash attempts to open the corresponding TCP socket.
/dev/udp/host/port

    If host is a valid hostname or Internet address, and port is an integer port number or service name, Bash attempts to open the corresponding UDP socket. 

По функционалу есть популярные статьи типа этой https://ngelinux.com/how-to-use-dev-tcp-and-dev-udp-sockets-in-linux/

Чтобы это работало, bash нужно собирать с ключом --enable-net-redirections
Comment 1 Alexander Makeenkov 2024-04-02 11:31:36 MSK
Воспроизводится в сизифе на версии bash-5.2.15-alt1