Я использую ss -p
для просмотра информации о сокетах TCP. Но информация о процессе не выводится для некоторых сокетов. Ниже:
$ ss -p4
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 10.146.18.213:50368 199.7.59.72:http
Но с помощью sudo я могу увидеть информацию о процессе:
$ sudo ss -p4
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 10.146.18.213:50368 199.7.59.72:http users:(("sshd",473,18))
Без netstat -net
root я могу видеть пользователя:
$ netstat -net
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode
tcp 0 0 10.146.18.213:50368 199.7.59.72:80 ESTABLISHED 222 3693189
Мой идентификатор пользователя — 222:
$ id -u
222
Но ss показывает информацию о процессе только с правами root.
У меня есть вопросы:
- Почему существуют сокеты, с которыми не связан ни один пользователь?
- Подвергаются ли эти сокеты без пользователей проверке
owner
соответствия модулей iptables?
решение1
Я бы сказал, что ваш "sudo ss" показывает соединение, относящееся к пользователю sshd, в то время как "netstat -net" — к вашему собственному пользователю. Вот почему версия netstat не требует sudo для выяснения деталей, касающихся сокета.
Вы ss -e
также можете использовать его для получения UID.