xpaacl(n)

πŸ“¦ version 2.1.20, in fedora 43, fedora 44

πŸ’– NAME πŸ’–

XPAAcl β€” Access Control for XPA Messaging πŸŽ€

like, the whole entire name, bestie. access control. for XPA. that's the vibe.


✨ SYNOPSIS ✨

okay so XPA supports host-based access control for each XPA access point. every single one. individual treatment. main character energy for every access point fr πŸ’…

  • you can enable/disable access control with the XPA_ACL environment variable πŸ‘‘
  • you can specify access to specific XPA access points for specific machines using the XPA_DEFACL and XPA_ACLFILE environment variables πŸ¦‹
  • and by default? an XPA access point is accessible only to processes running on the same machine. same as X Windows. that's the default behavior, no cap 🫢

🌸 DESCRIPTION 🌸

okay so when INET sockets are in use (that's the default, as specified by the XPA_METHOD environment variable, just so you know 🧚), XPA supports a host-based access control mechanism for individual access points.

which means: access can be specified for get, set, or info operations for each access point, machine by machine. yes, per-machine. very granular. very slay.

and for LOCAL sockets? access is restricted (by definition, bestie, by definition) to the host machine. that's just how it is πŸ’€


XPA access control is enabled by default ⭐ but it can be turned off by setting the XPA_ACL environment variable to false. and in that case? any process can access any XPA server. free-for-all. doors wide open. no bouncer at the club πŸ™ˆ

assuming access control is turned on, the ACL for an individual XPA access point is set up when that access point is registered (although it can be changed later on, see below πŸ‘€). this can be done in one of two ways:

1️⃣ the XPA_ACLFILE way

firstly, the XPA_ACLFILE environment variable can be defined to point to a file of access controls for individual access points. the format of this file is:

 class:name ip acl

let's break it down, because we are breaking it down πŸ“

  • the first argument is a template that specifies the class:name of the access point covered by this ACL. see XPA Access Points and Templates for more information about xpa templates.
  • the second argument is the IP address (in human-readable format, we're not doing binary here πŸ’…) of the machine which is being given access. this argument can be * to match all IP addresses. it also can be $host to match the IP address of the current host.
  • the third argument is a string combination of s, g, or i to allow xpaset, xpaget, or xpainfo access respectively. and the ACL argument can be + to give sgi access, or it can be - to turn off all access. that's it, that's the whole alphabet πŸ”₯

for example,

  *:xpa1  somehost sg
  *:xpa1  myhost +
  * * g

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. see how that works? iconic behavior honestly πŸ‘‘

2️⃣ the XPA_DEFACL way

secondly, 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 +"

meaning that 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 parallels the X11 xhost mechanism, iykyk.


πŸ”§ changing an ACL on the fly

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. giving and taking away, we contain multitudes πŸ’œ

similarly, the current ACL for a given access point can be retrieved using:

  xpaget xpa1 -acl
of course, you must have xpaget access to this XPA access point to retrieve its ACL. like, obviously bestie, you can't peek at the guest list if you're not on the guest list 😭

🫧 a couple more things, don't skip these

note that the XPA access points registered in the xpans program also behave according to the ACL rules. that is, you cannot use xpaget to view the access points registered with xpans unless you have the proper ACL. the rules apply to everyone. no exceptions. periodt.

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, you're in. the door doesn't re-check your ID mid-party πŸšͺπŸ’€


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 cute, it's useful, but it's not the vault at Fort Knox. just so we're clear πŸŽ€

πŸ’« SEE ALSO πŸ’«

see xpa(n) for a list of XPA help pages πŸ¦‹


and that's the whole page bestie, mwah πŸ’– this was SAORD Documentation, version 2.1.15, dated July 23, 2013 β€” go forth and control your access, you absolute icon πŸ‘‘βœ¨

πŸ“¦ where this page comes from