Определить пользователя, подключающего локальный сокет с Python - PullRequest
2 голосов
/ 24 июня 2010

Если в Python вы разрабатываете системную службу, которая обменивается данными с пользовательскими приложениями через сокеты и хотите по-разному относиться к сокетам, подключенным к разным пользователям, как бы вы поступили?

Если я знаю, что все соединительные сокеты будут от localhost, есть ли способ поиска через ОС (в Windows или Linux), какой пользователь делает запрос на соединение?

Ответы [ 3 ]

3 голосов
/ 24 июня 2010

В Linux и других системах Unixy вы можете использовать сервис идент .

Я не уверен, что Windows предлагает что-то подобное.

1 голос
/ 24 июня 2010

К сожалению, в данный момент библиотеки Python не поддерживают обычный метод SCM_CREDENTIALS для передачи учетных данных по сокету Unix.

Вам нужно будет использовать «уродливый» метод, как описано в другомответь, чтобы найти его.

0 голосов
/ 24 июня 2010

В Linux вы можете получить исходный (т.е. клиентский) порт сокета и проанализировать выходные данные утилиты lsof(8), которая ищет, кто использует этот порт.

Вот справочная страница .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...