Как использовать lsof с SSH ControlPath?
Я широко использую SSH ControlPath и хотел бы использовать lsof
инструмент для проверки того, какой процесс поддерживает и работает сокет ControlPath. я использую OpenSSH_7.2p2 Ubuntu-4ubuntu1, OpenSSL 1.0.2g-fips 1 Mar 2016
который поставляется с Ubuntu 16.04. Мои параметры SSH (в ~/.ssh/config) выглядят так:
Host *
...
ControlMaster auto
ControlPath /tmp/sshcontrol-%C
ControlPersist yes
...
И это то, что я получаю при первом подключении к хосту:
srw------- 1 enzo enzo 0 2016-06-15 11:35:15 sshcontrol-e10fedd3d8237e382300367ff49267fa193957ac
Но если я попытаюсь получить подробную информацию о процессе, используя этот сокет с lsof
Я получаю эти "странные" результаты.
$ lsof /tmp/sshcontrol-e10fedd3d8237e382300367ff49267fa193957ac
lsof: WARNING: can't stat() tracefs file system /sys/kernel/debug/tracing
Output information may be incomplete.
$ sudo lsof /tmp/sshcontrol-e10fedd3d8237e382300367ff49267fa193957ac
$ lsof | grep sshcontrol-e10fedd3d8237e382300367ff49267fa193957ac
lsof: WARNING: can't stat() tracefs file system /sys/kernel/debug/tracing
Output information may be incomplete.
ssh 2044 enzo 4u unix 0x0000000000000000 0t0 42942 /tmp/sshcontrol-e10fedd3d8237e382300367ff49267fa193957ac.tBKTDPNcaBZjlV2T type=STREAM
ssh 2044 enzo 5u unix 0x0000000000000000 0t0 55186 /tmp/sshcontrol-e10fedd3d8237e382300367ff49267fa193957ac.tBKTDPNcaBZjlV2T type=STREAM
$ lsof /tmp/sshcontrol-e10fedd3d8237e382300367ff49267fa193957ac.tBKTDPNcaBZjlV2T
lsof: WARNING: can't stat() tracefs file system /sys/kernel/debug/tracing
Output information may be incomplete.
lsof: status error on /tmp/sshcontrol-e10fedd3d8237e382300367ff49267fa193957ac.tBKTDPNcaBZjlV2T: No such file or directory
lsof 4.89
latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ
latest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man
usage: [-?abhKlnNoOPRtUvVX] [+|-c c] [+|-d s] [+D D] [+|-E] [+|-e s] [+|-f[gG]]
[-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+m [m]] [+|-M] [-o [o]] [-p s]
[+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]
Use the ``-h'' option to get more help information.
То есть "фактическое" имя файла, связанное с этим сокетом, не является тем, чем "оно должно быть": lsof сообщает о дополнительном расширении имени файла. Другой инструмент для розеток ss
дает аналогичные результаты.
Последнее странное поведение. Я вижу, у меня есть розетка в /tmp
быть использованным kdewallet
, Это называется (в моем случае) kwallet5_enzo.socket
, Если я использую lsof
за это вот что я получаю:
$ lsof /tmp/kwallet5_enzo.socket
lsof: WARNING: can't stat() tracefs file system /sys/kernel/debug/tracing
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
kwalletd5 1689 enzo 2u unix 0x0000000000000000 0t0 27355 /tmp/kwallet5_enzo.socket type=STREAM
startkde 1690 enzo 19u unix 0x0000000000000000 0t0 27802 /tmp/kwallet5_enzo.socket type=STREAM
dbus-laun 1742 enzo 19u unix 0x0000000000000000 0t0 27802 /tmp/kwallet5_enzo.socket type=STREAM
dbus-daem 1743 enzo 19u unix 0x0000000000000000 0t0 27802 /tmp/kwallet5_enzo.socket type=STREAM
start_kde 1800 enzo 19u unix 0x0000000000000000 0t0 27802 /tmp/kwallet5_enzo.socket type=STREAM
kwrapper5 1843 enzo 19u unix 0x0000000000000000 0t0 27802 /tmp/kwallet5_enzo.socket type=STREAM
ssh 3023 enzo 5u unix 0x0000000000000000 0t0 104592 /tmp/sshcontrol-e10fedd3d8237e382300367ff49267fa193957ac.sGsWVH3Aqg03Hc7D type=STREAM
ssh 8862 enzo 5u unix 0x0000000000000000 0t0 1131569 /tmp/sshcontrol-485e2aeac2a50cd6880fd929681d0e3a55817f06.deg4pBWKy2nusvrK type=STREAM
ssh 31767 enzo 5u unix 0x0000000000000000 0t0 1006327 /tmp/sshcontrol-f1b458a85cd2aa9d5c115abc12afee9f485ad6b0.g2QSMGUDOG1LY8bZ
Я (правильно) вижу ряд процессов, обращающихся к этому сокету. Но я также вижу три нежелательных розетки, связанные с ControlPath
особенность по SSH! Я начинаю думать больше об ошибках и меньше о своем собственном невежестве.
Как я могу надежно проверить, какой процесс использует этот файл сокета?