Skip to content

A Python library that simplifies reading peer credentials from Unix domain sockets.

License

Notifications You must be signed in to change notification settings

cptpcrd/unix_cred

Repository files navigation

unix_cred

PyPI Python Versions Documentation Status GitHub Actions Cirrus CI codecov

A Python library that simplifies reading peer credentials from Unix domain sockets.

Installation

$ pip install unix-cred

Examples

>>> import os
>>> import socket
>>> import unix_cred
>>> server = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
>>> server.bind("/tmp/unix_cred-test")
>>> server.listen(1)
>>> cli = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
>>> cli.connect("/tmp/unix_cred-test")
>>> server_cli = server.accept()[0]
>>> # Check the peer credentials on each end against the current process's
>>> assert unix_cred.get_peer_uid_gid(cli) == (os.geteuid(), os.getegid())
>>> assert unix_cred.get_peer_uid_gid(server_cli) == (os.geteuid(), os.getegid())
>>> # Not supported on all systems
>>> # On some systems this function is not defined; on certain versions of other systems
>>> # it may return None for the PID
>>> assert unix_cred.get_peer_pid_uid_gid(cli) == (os.getpid(), os.geteuid(), os.getegid())
>>> assert unix_cred.get_peer_pid_uid_gid(server_cli) == (os.getpid(), os.geteuid(), os.getegid())

About

A Python library that simplifies reading peer credentials from Unix domain sockets.

Resources

License

Stars

Watchers

Forks

Packages

No packages published