home | help
EXTATTR(9)		    Kernel Developer's Manual		      EXTATTR(9)

NAME
     extattr -- virtual file system named extended attributes

SYNOPSIS
     #include <sys/param.h>
     #include <sys/vnode.h>
     #include <sys/extattr.h>

DESCRIPTION
     Named  extended attributes allow additional meta-data to be associated with
     vnodes representing files and directories.  The  semantics  of  this  addi-
     tional  data is that of a "name=value" pair, where a name may be defined or
     undefined, and if defined, associated with zero or more bytes of  arbitrary
     binary  data.   Extended  attribute names exist within a set of namespaces;
     each operation on an extended attribute is required to  provide  the  name-
     space  to which to operation refers.  If the same name is present in multi-
     ple namespaces, the extended  attributes  associated  with  the  names  are
     stored and manipulated independently.  The following two namespaces are de-
     fined  universally,  although  individual	file systems may implement addi-
     tional    namespaces,    or     not     implement	   these     namespaces:
     EXTATTR_NAMESPACE_USER,  EXTATTR_NAMESPACE_SYSTEM.   The semantics of these
     attributes are intended to be as follows: user attribute data is  protected
     according	the  normal  discretionary  and mandatory protections associated
     with the data in the file or directory; system attribute data is  protected
     such  that  appropriate privilege is required to directly access or manipu-
     late these attributes.  By default, processes in a  jail(8)  cannot  access
     the  system attribute data unless the allow.extattr configuration parameter
     is specified.

     Reads of extended attribute data may return specific contiguous regions  of
     the meta-data, in the style of VOP_READ(9), but writes will replace the en-
     tire current "value" associated with a given name.  As there are a plethora
     of  file systems with differing extended attributes, availability and func-
     tionality of these functions may be limited, and they should be  used  with
     awareness	of  the underlying semantics of the supporting file system.  Au-
     thorization schemes for extended attribute data may also vary by file  sys-
     tem,  as well as maximum attribute size, and whether or not any or specific
     new attributes may be defined.

     Extended attributes are named using  a  null-terminated  character  string.
     Depending	on underlying file system semantics, this name may or may not be
     case-sensitive.  Appropriate vnode extended attribute calls are: VOP_GETEX-
     TATTR(9), VOP_LISTEXTATTR(9), and VOP_SETEXTATTR(9).

SEE ALSO
     jail(8), VFS(9), VOP_GETEXTATTR(9), VOP_LISTEXTATTR(9), VOP_SETEXTATTR(9)

AUTHORS
     This manual page was written by Robert Watson.

BUGS
     In addition, the interface does not provide a  mechanism  to  retrieve  the
     current set of available attributes; it has been suggested that providing a
     NULL  attribute  name  should  cause  a  list of defined attributes for the
     passed file or directory, but this is not currently implemented.

FreeBSD 15.1			September 5, 2023		      EXTATTR(9)

home | help