| Server IP : 162.214.74.102 / Your IP : 216.73.216.192 Web Server : Apache System : Linux dedi-4363141.lrsys.com.br 3.10.0-1160.119.1.el7.tuxcare.els25.x86_64 #1 SMP Wed Oct 1 17:37:27 UTC 2025 x86_64 User : lrsys ( 1015) PHP Version : 5.6.40 Disable Function : exec,passthru,shell_exec,system MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /opt/imunify360/venv/lib64/python3.11/site-packages/defence360agent/internals/ |
Upload File : |
import asyncio
import socket
import logging
import struct
logger = logging.getLogger(__name__)
class UnixSocketAuthProtocol(asyncio.Protocol):
"""
This protocol uses SO_PEERCRED attribute of unix socket
to get authentication data (pid, uid, gid)
After connect, this values are stored in object's
_pid, _uid, _gid attributes
"""
# ucred struct format (3 integers)
# struct ucred
# {
# pid_t pid; /* PID of sending process. */
# uid_t uid; /* UID of sending process. */
# gid_t gid; /* GID of sending process. */
# };
#
STRUCT_FORMAT = "3i"
def connection_made(self, transport):
self._transport = transport
conn = self._transport.get_extra_info("socket")
creds = conn.getsockopt(
socket.SOL_SOCKET,
socket.SO_PEERCRED,
struct.calcsize(self.STRUCT_FORMAT),
)
self._pid, self._uid, self._gid = struct.unpack(
self.STRUCT_FORMAT, creds
)
logger.debug(
"New socket connection from pid=%s, uid=%s, gid=%s",
self._pid,
self._uid,
self._gid,
)