UNIX ドメインソケットを使っている場合、INET ドメインや INET6 ドメインなどの場合と違って、通信相手(正確には通信を開始した相手)の PID, UID, GID を取得する方法があります。通信相手が名乗るのではなく、カーネルから情報を取ることになるので、取得した情報は信頼できます。
ちょっと必要になったので、SOCK_STREAM なソケットの場合を調べてみました。SOCK_DGRAM の場合でも取得できますが、その場合だと同一のソケットであってもパケットごとに違う相手である可能性があるため、取得がめんどくさくなります。
Read the rest of this entry