Access Control Lists¶
BeeGFS stores Access Control Lists (ACLs) as Extended Attributes of metadata files on the metadata server.
The client nodes need to run the Linux kernel version 3.1 or above to support ACLs. The ACL enforcement facilities needed by BeeGFS are not supported by older kernel versions.
To enable ACLs, edit the metadata configuration file (/etc/beegfs/beegfs-meta.conf
) and
check if the following options are set to true.
storeClientXAttrs = true
storeClientACLs = true
Then, edit the client configuration file (/etc/beegfs/beegfs-client.conf
) and check if the
following options are set to true.
sysXAttrsEnabled = true
sysACLsEnabled = true
If you change the configuration files, remember to restart their respective services afterward.
Note that enabling ACLs comes at some cost of reduced metadata performance, because additional data needs to be transferred and checked.
Additional performance considerations with Extended Attributes¶
The Linux kernel uses a security mechanism that automatically removes setuid/setgid bits and
capabilities from files when they are changed. This is done to prevent users from executing binaries
with elevated privileges that were changed after the privileges were originally set. That mechanism
requires that, by default, the kernel has to check each file for existing capabilities on every
write which leads to a large overhead in metadata RPCs to fetch the “security.capability” extended
attribute. To optimize this, Linux allows file systems to set a flag (S_NOSEC
) on the file,
which short-circuits these checks.
The sysXAttrsCacheCapabilities
client configuration option configures the file system mount to
allow the client to set that flag after a first lookup of the extended attribute returns an empty
result. The flag will automatically be cleared when capabilities are modified on this client. It
will, however, currently not be cleared if a different client modifies capabilities or sets
setuid/setgid bits, which can lead to capabilities not being cleared, even after the file is written
to. If this is a concern, the option should be set to false.
As long as BeeGFS is mounted using the “nosuid” mount option (which is recommended and the default
setting), elevating privileges via setuid/setgid bits and capabilities is disabled and it is safe to
set sysXAttrsCacheCapabilities
to true.