xpaacl(7)
π XPAAcl β Access Control for XPA Messaging π
okay bestie, welcome to the xpaacl(7) page from the SAORD Documentation era (yes, we're reading the whole thing, it's iconic, we're not skimming). this is literally the group chat about who's allowed to talk to your XPA access points and who is not. let's go π«Ά
β¨ NAME β¨
XPAAcl β Access Control for XPA Messaging π
β¨ SYNOPSIS β¨
so here's the vibe: XPA does host-based access control for every single XPA access point. you can turn it on or off with the XPA_ACL environment variable. you can also hand-pick who gets access to which XPA access points from which machines using the XPA_DEFACL and XPA_ACLFILE environment variables. and by default? an XPA access point is only reachable by processes running on the same machine β literally same energy as X Windows, no cap. π
β¨ DESCRIPTION β¨
when INET sockets are in use (that's the default, and it's set by the XPA_METHOD environment variable, iykyk), XPA rolls out a host-based access control mechanism for individual access points. meaning: you can specify access for get, set, or info operations, per access point, machine by machine. π
for LOCAL sockets though? access is restricted (by definition, bestie, it's just how it is) to the host machine.
XPA access control is enabled by default, but you can turn it off by setting the XPA_ACL environment variable to false. and in that case β whew β any process can access any XPA server. no gatekeeping, no vibe check. π
assuming access control is turned on, the ACL for an individual XPA access point gets set up when that access point is registered (it can be changed later though, more on that below). and there are two ways to do it:
First way π β the XPA_ACLFILE environment variable can be defined to point at a file full of access controls for individual access points. the format of this file is:
class:name ip acl
- the first argument is a template that specifies the
class:nameof the access point covered by this ACL. (see XPA Access Points and Templates for more info about xpa templates, bestie, go read it, it slays.) - the second argument is the IP address (in human-readable format, we're not doing binary here) of the machine being given access. this argument can be
*to match all IP addresses. it can also be$hostto match the IP address of the current host. π¦ - the third argument is a string combination of
s,g, orito allowxpaset,xpaget, orxpainfoaccess respectively. the ACL argument can be+to givesgiaccess, or it can be-to turn off all access. periodt.
for example:
*:xpa1 somehost sg
*:xpa1 myhost +
* * g
this will allow processes on the machine somehost to make xpaget and xpaset calls, allow processes on myhost to make any call, and allow all other hosts to make xpaget (but not xpaset) calls. so cute, so fair, so iconic. β¨
Second way π β if the XPA_ACLFILE does not exist, then a single default value for all access points can be specified using the XPA_DEFACL environment variable. the default value for this variable is:
#define XPA_DEFACL "*:* $host +"
which means all access points are fully accessible to all processes on the current host. so in the absence of any ACL environment variables, processes on the current host have full access to all access points created on that host. this literally parallels the X11 xhost mechanism. π
π₯ changing an individual ACL π₯
access to an individual XPA access point can be changed using the -acl parameter for that access point. for example:
xpaset -p xpa1 -acl "somehost -"
will turn off all access control for somehost to the xpa1 access point, while:
xpaset -p XPA:xpa1 -acl "beberly gs"
will give beberly xpaget and xpaset access to the access point whose class is XPA and whose name is xpa1. beberly ate, fr fr. π
similarly, the current ACL for a given access point can be retrieved using:
xpaget xpa1 -acl
of course β and this is the important part β you must have xpaget access to this XPA access point to retrieve its ACL. can't peek at the guest list if you're not on it, bestie. π
β οΈ important notes, don't skip these β οΈ
- note that the XPA access points registered in the
xpansprogram also behave according to the ACL rules. that is, you cannot usexpagetto view the access points registered withxpansunless you have the proper ACL. π - note also: when a client request is made to an XPA server, the access control is checked when the initial connection is established. this access in effect at this time remains in effect so long as the client connection is maintained, regardless of whether the access for that XPA is changed later on. so like, once you're in the party, you're in the party until you leave. π
we recognize that host-based access control is only relatively secure π and will consider more stringent security (e.g., private key) in the future if the community requires such support. so like, it's giving "good enough for now", not "bank vault".
β¨ SEE ALSO β¨
see xpa(n) for a list of XPA help pages π
and that's the whole page, bestie!! version 2.1.15, dated July 23, 2013, straight from the SAORD Documentation squad. thanks for reading the entire thing with me, you're literally the main character of manpage appreciation. mwah πβ¨ππ¦
π¦ where this page comes from
- debian bookworm: libxpa-dev 2.1.20-1 Β· MIT
- debian trixie: libxpa-dev 2.1.20-3 Β· MIT
- ubuntu jammy: libxpa-dev 2.1.20-1 Β· MIT
- ubuntu noble: libxpa-dev 2.1.20-1build1 Β· MIT
- ubuntu questing: libxpa-dev 2.1.20-3
- ubuntu resolute: libxpa-dev 2.1.20-3build1 Β· MIT
- ubuntu stonking: libxpa-dev 2.1.20-3build1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms