Я написал инструмент , который использует метод gdb для надежного получения информации о равноправном устройстве сокетов, символы отладки ядра не нужны.
Чтобы подключить процесс к указанному сокету, передайте ему номер инода:
# socket_peer 11085
3703 thunderbird
Чтобы выяснить для всех процессов одновременно, используйте netstat_unix
, он добавляет столбец к выводу netstat:
# netstat_unix
Proto RefCnt Flags Type State I-Node PID/Program name Peer PID/Program name Path
unix 3 [ ] STREAM CONNECTED 6825 982/Xorg 1497/compiz /tmp/.X11-unix/X0
unix 3 [ ] STREAM CONNECTED 6824 1497/compiz 982/Xorg
unix 3 [ ] SEQPACKET CONNECTED 207142 3770/chromium-brows 17783/UMA-Session-R
unix 3 [ ] STREAM CONNECTED 204903 1523/pulseaudio 3703/thunderbird
unix 3 [ ] STREAM CONNECTED 204902 3703/thunderbird 1523/pulseaudio
unix 3 [ ] STREAM CONNECTED 204666 1523/pulseaudio 3703/thunderbird
...
Попробуйте netstat_unix --dump
, если вам нужен вывод, который легко анализировать.
Подробнее см. https://github.com/lemonsqueeze/unix_sockets_peers.
Для справки, inode + 1 / -1 взломать не является надежным. Он работает большую часть времени, но не удастся или (что еще хуже) вернет неправильный сокет, если вам не повезло.