VFS_ACL_XATTR(8)
π NAME π
vfs_acl_xattr β bestie, this one saves NTFS-ACLs into Extended Attributes (EAs) π
β¨ SYNOPSIS β¨
vfs objects = acl_xattr
π¦ DESCRIPTION π¦
Okay so first thing, this VFS module is part of the samba(7) suite β she's literally family π«Ά
This module was made for systems that do not support standardized NFS4 ACLs and only have a deprecated POSIX ACL draft implementation instead. (Yeah. Deprecated. We don't love that for us π) This is usually the case on Linux systems, no cap. Systems that do support NFSv4 ACLs just use those directly instead of this module β that support is usually provided by the filesystem VFS module specific to the underlying filesystem that supports NFS4 ACLs.
So what does vfs_acl_xattr actually do? She stores NTFS Access Control Lists (ACLs) in Extended Attributes (EAs) π and that's the whole vibe. This enables the full mapping of Windows ACLs on Samba servers even if the ACL implementation is not capable of doing so. Iconic honestly.
The NT ACLs are stored in the security.NTACL extended attribute of files and directories, in a form containing the Windows SID representing the users and groups in the ACL. Now listen β this is different from the uid and gids stored in local filesystem ACLs, and the mapping from users and groups to Windows SIDs must be consistent in order to maintain the meaning of the stored NT ACL. (Consistency is the moment, bestie. Keep it consistent or the whole thing loses its meaning π)
Also real talk: that extended attribute is not listed by the Linux command getfattr -d filename. To show the current value, the name of the EA must be specified, like this:
getfattr -n security.NTACL filename
She also forces these parameters, no negotiation:
inherit acls = truedos filemode = trueforce unknown acl user = true
And lastly β this module is stackable π₯β¨
π OPTIONS π
acl_xattr:security_acl_name = NAMEβ This one lets you redefine the default location for the NTACL extended attribute (xattr). If it's not set, NTACL xattrs get written tosecurity.NTACL, which is a protected location β meaning the content of thesecurity.NTACLattribute is not accessible from normal users outside of Samba π. But the second you set this option to a user-defined value, likeuser.NTACL, then any user can potentially access and overwrite this information π³. The module does prevent access to this xattr over SMB, but the xattr may still be accessed by other means (eg local access, SSH, NFS). So this option must only be used when this consequence is clearly understood and when specific precautions are taken to avoid compromising the ACL content. Like, fr fr, read that twice π¨acl_xattr:ignore system acls = [yes|no]β When set toyes, a best effort mapping from/to the POSIX draft ACL layer will not be done by this module. The default isno, which means Samba keeps setting and evaluating both the system ACLs and the NT ACLs β that's the better move if you need your system ACLs be set for local or NFS file access, too. But if you only access the data via Samba, you might set this toyesto achieve better NT ACL compatibility π
Heads up though: if acl_xattr:ignore system acls is set to yes, these additional settings get enforced, periodt:
create mask = 0666directory mask = 0777map archive = nomap hidden = nomap readonly = nomap system = nostore dos attributes = yes
acl_xattr:default acl style = [posix|windows|everyone]β This parameter determines the type of ACL that is synthesized in case a file or directory lacks ansecurity.NTACLxattr. So like, when there's no xattr, what do we make up? That's the question she's answering πposixβ an ACL will be synthesized based on the POSIX mode permissions for user, group and others, with an additional ACE forNT Authority\SYSTEMwill full rights.windowsβ an ACL is synthesized the same way Windows does it, only including permissions for the owner andNT Authority\SYSTEM.everyoneβ an ACL is synthesized giving full permissions to everyone (S-1-1-0). Everybody gets everything, main character energy for the whole group chat π
The default for this option is posix.
π AUTHOR π
The original Samba software and related utilities were created by Andrew Tridgell π«Ά Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed. Community-built and thriving, we love to see it π
And that's the whole page, bestie!! This was Samba 4.24.7-Ubuntu-4.24.7+dfs, dated 09/13/2026 β from the System Administration tools corner of the manual πβ¨ Go forth and set those ACLs, you absolute icon π
π¦ where this page comes from
- ubuntu stonking: samba 2:4.24.7+dfsg-1ubuntu1 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms