ACL_SET_QUALIFIER(3)
π ACL_SET_QUALIFIER(3) β Library Functions Manual
okay bestie, pull up a chair, we're doing a manual page from the Linux Access Control Lists library (that's libacl, link it with -lacl) π and honestly? it's a good one. the function is acl_set_qualifier, and the whole vibe is: you have an ACL entry, and you want to change who or what it's about. iconic behavior. let's go β¨
πΈ NAME πΈ
acl_set_qualifier β set the qualifier of an ACL entry
like, the qualifier. the little "which user" / "which group" part. the who in the who gets what. π«Ά
π LIBRARY π
Linux Access Control Lists library (libacl, -lacl).
π¦ SYNOPSIS π¦
#include <sys/types.h>
#include <sys/acl.h>
int
acl_set_qualifier(acl_entry_t entry_d, const void *qualifier_p);
β¨ DESCRIPTION β¨
so. acl_set_qualifier() sets the qualifier of the ACL entry pointed at by the argument entry_d to the value referred to by the argument qualifier_p. simple as that. π
here's the part you cannot fumble, and i say this with love:
- if the value of the tag type in the ACL entry referred to by
entry_disACL_USER, then the value referred to byqualifier_pshall be of typeuid_tπ - if the value of the tag type in the ACL entry referred to by
entry_disACL_GROUP, then the value referred to byqualifier_pshall be of typegid_tπ - if the value of the tag type in the ACL entry referred to by
entry_dis a tag type for which a qualifier is not supported,acl_set_qualifier()returns an error. no qualifier for you, babe. π
also important, and it's giving "your pointers still work":
Any ACL entry descriptors that refer to the entry referred to by entry_d continue to refer to that entry. no dangling, no ghosting, we love that for them π«Ά
and the memory tea π: this function may cause memory to be allocated. so the caller should free any releasable memory, when the ACL is no longer required, by calling acl_free() with a pointer to the ACL as argument. clean up after yourself, bestie, it's self care. β¨
π RETURN VALUE π
acl_set_qualifier() returns the value 0 if successful π otherwise the value -1 is returned and the global variable errno is set to indicate the error π
π ERRORS π
if any of the following conditions occur, the acl_set_qualifier() function returns -1 and sets errno to the corresponding value:
[EINVAL]β any of these, and they're all "girl what":- The argument
entry_dis not a valid descriptor for an ACL entry. - The value of the tag type in the ACL entry referenced by the argument
entry_dis neitherACL_USERnorACL_GROUP. - The value pointed to by the argument
qualifier_pis not valid.
- The argument
[ENOMEM]β Theacl_set_qualifier()function is unable to allocate the memory required for the ACL qualifier. (the machine said "no π")
π STANDARDS π
IEEE Std 1003.1e draft 17 (βPOSIX.1eβ, abandoned)
abandoned. the standard got ghosted. we still use it anyway. main character energy π§
π₯ SEE ALSO π₯
acl_create_entry(3)acl_free(3)acl_get_permset(3)acl_get_qualifier(3)acl_get_tag_type(3)acl_set_entry(3)acl_set_permset(3)acl_set_tag_type(3)acl(5)
iykyk, go read the whole squad π
π AUTHOR π
Derived from the FreeBSD manual pages written by Robert N M Watson <rwatson@FreeBSD.org>, and adapted for Linux by Andreas Gruenbacher <andreas.gruenbacher@gmail.com>. legends, honestly. thank you for your service π«‘π
and that's the page!! this one's from Linux ACL, dated March 23, 2002 β vintage, but still slaying. go set some qualifiers, bestie, you got this ππ
π¦ where this page comes from
- alpine 3.22: acl-doc 2.3.2-r1 Β· LGPL-2.1-or-later AND GPL-2.0-or-later
- alpine 3.23: acl-doc 2.3.2-r1 Β· LGPL-2.1-or-later AND GPL-2.0-or-later
- alpine 3.24: acl-doc 2.3.2-r1 Β· LGPL-2.1-or-later AND GPL-2.0-or-later
- arch rolling: acl 2.4.0-1 Β· LGPL-2.1-or-later AND GPL-2.0-or-later
- centos-stream 10: libacl-devel 2.4.0-2.el10 Β· LGPL-2.1-or-later
- centos-stream 9: libacl-devel 2.4.0-2.el9 Β· LGPLv2+
- centos-stream 9: libacl-devel 2.4.0-2.el9 Β· LGPLv2+
- debian bookworm: libacl1-dev 2.3.1-3
- debian trixie: libacl1-dev 2.3.2-2+b1
- fedora 43: libacl-devel 2.3.2-4.fc43 Β· LGPL-2.1-or-later
- fedora 43: libacl-devel 2.3.2-4.fc43 Β· LGPL-2.1-or-later
- fedora 43: libacl-devel 2.4.0-1.fc43 Β· LGPL-2.1-or-later
- fedora 43: libacl-devel 2.4.0-1.fc43 Β· LGPL-2.1-or-later
- fedora 44: libacl-devel 2.3.2-6.fc44 Β· LGPL-2.1-or-later
- fedora 44: libacl-devel 2.3.2-6.fc44 Β· LGPL-2.1-or-later
- fedora 44: libacl-devel 2.4.0-1.fc44 Β· LGPL-2.1-or-later
- fedora 44: libacl-devel 2.4.0-1.fc44 Β· LGPL-2.1-or-later
- nixpkgs unstable: acl 2.4.0
- opensuse-leap 16.0: libacl-devel 2.4.0-160000.1.1 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: libacl-devel 2.4.0-160000.1.1 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: libacl-devel 2.4.0-160000.1.1 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- opensuse-leap 16.0: libacl-devel 2.4.0-160000.1.1 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- ubuntu jammy: libacl1-dev 2.3.1-1
- ubuntu noble: libacl1-dev 2.3.2-1build1
- ubuntu noble: libacl1-dev 2.3.2-1build1.1
- ubuntu resolute: libacl1-dev 2.3.2-2
- ubuntu stonking: libacl1-dev 2.4.0-1
- (C) 2002 Andreas Gruenbacher, <andreas.gruenbacher@gmail.com>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms