Сабж. Вот у меня есть на сервере сокет (из модуля socket):
s = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
s.setsockopt( socket.SOL_SOCKET, socket.SO_REUSEADDR, 1 )
s.bind(('127.0.0.1',port))
s.listen(5)
conn, addr = s.accept()
Вот у меня поднялся коннект. Возможно ли узнать, от какого пользователя запущен процесс на том конце, если с этого конца сидит не root? Я могу при помощи lsof проверить не сидит ли на том конце тот же пользователь что и на этом, и если с этой стороны root могу удостоверится что с той стороны тот кто нужен.
if os.popen( 'lsof -a -u %i -i :%i | grep ":%i->"'%( uid, port, conn.getpeername()[1] ) ).readline() : ... # это правильный чувак
else: ... # отвали!
Но во первых решение через lsof выглядит криво, во вторых как быть если не от рута идет работа? И насколько такие проверки вообще надежны (сейчас скорее речь идет о защите от дурака а не от злоумышленника, но все же...)?