0

ubuntu 16.04

I have 2 node applications, app-1 and app-2, with usernames matching their application names, listening locally (on ports 8001 and 8002, respectively) on the same instance. When app-1 makes a request to app-2 I can find the remoteHost of the socket handling the request from app-2. Then when I try to look up this remoteHost via netstat and retrieve some user/process information, I find that the user associated with the socket is uid: 0 or root. My expectation is that the user associated with this connection would be app-1, since that is the application where the request is being generated. So part 1 of my question is: why is the user root and not app-1?

Part 2: My goal is to get the user id of the remote process based solely on the information in remoteHost (e.g. 127.0.0.1:53900). Seems to me like the operating system should know exactly what process/user-id is using that host/port combination. So, assuming netstat will not work, for the reasons mentioned in the previous paragraph, what other system calls or utilities could I look at to get this information?

1 Answer 1

0

Embarrassingly, I think the problem in part 1 is that I was only examining the connection after it had already been closed on 1 side (the state was time-wait). As a test I changed the connection type to keep-alive and now the user information appears as expected.

The answer for part 2 will then be reading the same files as netstat (/proc/net/*) and searching for the remoteHost.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .