ACL_EXTENDED_FD(3)

✨ ACL_EXTENDED_FD ✨

okay bestie, so acl_extended_fd(3) β€” it's a Linux library function manual page, and it's giving "quick little vibe check on your file descriptor's ACL" energy. Let's get into it πŸ’…


🌸 NAME 🌸

acl_extended_fd β€” test for information in the ACL by file descriptor

πŸ“š LIBRARY πŸ“š

Linux Access Control Lists library (libacl, -lacl).

πŸŽ€ SYNOPSIS πŸŽ€

#include <sys/types.h>
#include <acl/libacl.h>

int
acl_extended_fd(int fd);

πŸ’– DESCRIPTION πŸ’–

so like, acl_extended_fd() is literally the "do you have an extended ACL or not" detector πŸ”. If the file identified by the argument fd is associated with an extended access ACL, it returns 1. If the file does not have an extended access ACL, it returns 0. Simple as that, no cap.

And what even is an extended ACL, you ask? It's an ACL that contains entries other than the three required entries of tag types ACL_USER_OBJ, ACL_GROUP_OBJ and ACL_OTHER. Those three are the bare minimum, the main-character trio πŸ‘‘. If the result of the acl_extended_fd() function for a file object is 0, then the ACL defines no discretionary access rights other than those already defined by the traditional file permission bits. iykyk β€” the classic rwx bits got it covered.

heads up though: access to the file object may be further restricted by other mechanisms, such as Mandatory Access Control schemes. So this function isn't the whole story, bestie. The access(2) system call can be used to check whether a given type of access to a file object would be granted.

πŸ”₯ RETURN VALUE πŸ”₯

If successful, the acl_extended_fd() function returns 1 if the file object identified by fd has an extended access ACL, and 0 if the file object identified by fd does not have an extended access ACL. Otherwise, the value -1 is returned and the global variable errno is set to indicate the error. That -1 is the "something went wrong, check errno" moment 😭.

πŸ’€ ERRORS πŸ’€

If any of the following conditions occur, the acl_extended_fd() function returns -1 and sets errno to the corresponding value:

  • [EBADF] β€” The fd argument is not a valid file descriptor. (bestie that's not a real fd 😭)
  • [ENOTSUP] β€” The file system on which the file identified by fd is located does not support ACLs, or ACLs are disabled.

πŸ‘‘ STANDARDS πŸ‘‘

This is a non-portable, Linux specific extension to the ACL manipulation functions defined in IEEE Std 1003.1e draft 17 (β€œPOSIX.1e”, abandoned). Yeah, the standard got abandoned, rip πŸͺ¦ β€” but this function lives on, iconic.

🌈 SEE ALSO 🌈

access(2), acl_get_fd(3), acl(5)

πŸ¦‹ AUTHOR πŸ¦‹

Written by Andreas Gruenbacher <andreas.gruenbacher@gmail.com>.


mwah πŸ’– that's the whole page bestie, go forth and ACL responsibly. This was the Linux ACL library manual, page ACL_EXTENDED_FD(3), dated March 23, 2002 β€” slay, periodt ✨🫢

πŸ“¦ where this page comes from