1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-17 10:26:15 +00:00
freebsd/sys/conf
Robert Watson a70f27470f Introduce support for POSIX.1e ACLs on UFS-based file systems. This
implementation is still experimental, and while fairly broadly tested,
is not yet intended for production use.  Support for POSIX.1e ACLs on
UFS will not be MFC'd to RELENG_4.

This implementation works by providing implementations of VOP_[GS]ETACL()
for FFS, as well as modifying the appropriate access control and file
creation routines.  In this implementation, ACLs are backed into extended
attributes; the base ACL (owner, group, other) permissions remain in the
inode for performance and compatibility reasons, so only the extended and
default ACLs are placed in extended attributes.  The logic for ACL
evaluation is provided by the fs-independent kern/kern_acl.c.

o Introduce UFS_ACL, a compile-time configuration option that enables
  support for ACLs on FFS (and potentially other UFS-based file systems).
o Introduce ufs_getacl(), ufs_setacl(), ufs_aclcheck(), which
  respectively get, set, and check the ACLs on the passed vnode.
o Introduce ufs_sync_acl_from_inode(), ufs_sync_inode_from_acl() to
  maintain access control information between inode permissions and
  extended attribute data.
o Modify ufs_access() to load a file access ACL and invoke
  vaccess_acl_posix1e() if ACLs are available on the file system
o Modify ufs_mkdir() and ufs_makeinode() to associate ACLs with newly
  created directories and files, inheriting from the parent directory's
  default ACL.
o Enable these new vnode operations and conditionally compiled code
  paths if UFS_ACL is defined.

A few notes:

o This implementation is fairly widely tested, but still should be
  considered experimental.
o Currently, ACLs are not exported via NFS, instead, the summarizing
  file mode/etc from the inode is.  This results in conservative
  protection behavior, similar to the behavior of ACL-nonaware programs
  acting locally.
o It is possible that underlying binary data formats associated with
  this implementation may change.  Consumers of the implementation
  should expect to find their local configuration obsoleted in the
  next few months, resulting in possible loss of ACL data during an
  upgrade.
o The extended attributes interface and implementation is still
  undergoing modification to address portable interface concerns, as
  well as performance.
o Many applications do not yet correctly handle ACLs.  In general,
  due to the POSIX.1e ACL model, behavior of ACL-unaware applications
  will be conservative with respects to file protection; some caution
  is recommended.
o Instructions for configuring and maintaining ACLs on UFS will be
  committed in the near future; in the mean time it is possible to
  reference the README included in the last UFS ACL distribution
  placed in the TrustedBSD web site:

      http://www.TrustedBSD.org/downloads/

Substantial debugging, hardware, travel, or connectivity support for this
project was provided by: BSDi, Safeport Network Services, and NAI Labs.
Significant coding contributions were made by Chris Faulhaber.  Additional
support was provided by Brian Feldman, Thomas Moestl, and Ilmar Habibulin.

Reviewed by:	jedgar, keichii, mckusick, trustedbsd-discuss, freebsd-fs
Obtained from:	TrustedBSD Project
2001-03-26 17:53:19 +00:00
..
defines
files Introduce support for POSIX.1e ACLs on UFS-based file systems. This 2001-03-26 17:53:19 +00:00
files.alpha Add and document the LINPROCFS option, so that we can build linprocfs 2001-02-27 08:11:28 +00:00
files.i386 Add and document the LINPROCFS option, so that we can build linprocfs 2001-02-27 08:11:28 +00:00
files.ia64 Remove count for NSIO. The only places it was used it were incorrect. 2001-01-31 10:54:45 +00:00
files.pc98 Added another wd33c93 based SCSI card driver which replaces the bs driver. 2001-02-27 12:34:01 +00:00
kern.mk Add section for building ia64 kernels. 2000-10-16 20:04:52 +00:00
kmod.mk Cleaner way of adding -fschg (ie, correctly implement). 2001-03-24 08:31:45 +00:00
ldscript.alpha Add $FreeBSD$ 2000-01-11 15:35:16 +00:00
ldscript.amd64 Add $FreeBSD$ 2000-01-11 15:35:16 +00:00
ldscript.i386 Add $FreeBSD$ 2000-01-11 15:35:16 +00:00
ldscript.ia64 Change the kernel layout to match Linux/ia64 more closely. This prevents 2001-03-09 13:47:25 +00:00
ldscript.powerpc Add $FreeBSD$ 2000-01-11 15:35:16 +00:00
majors Add the ata control device. 2001-03-15 15:26:38 +00:00
Makefile.alpha Restore the careful preservation of .depend (rev 1.78 of Makefile.i386) 2001-03-24 08:44:28 +00:00
Makefile.i386 Restore the careful preservation of .depend (rev 1.78 of Makefile.i386) 2001-03-24 08:44:28 +00:00
Makefile.ia64 Restore the careful preservation of .depend (rev 1.78 of Makefile.i386) 2001-03-24 08:44:28 +00:00
Makefile.pc98 Restore the careful preservation of .depend (rev 1.78 of Makefile.i386) 2001-03-24 08:44:28 +00:00
Makefile.powerpc Restore the careful preservation of .depend (rev 1.78 of Makefile.i386) 2001-03-24 08:44:28 +00:00
newvers.sh setlocale(3) has been fixed to match POSIX standard: 2001-03-02 16:52:14 +00:00
NOTES o Two changes made elsewhere relating to recent EA commits, but not 2001-03-19 23:27:37 +00:00
options Introduce support for POSIX.1e ACLs on UFS-based file systems. This 2001-03-26 17:53:19 +00:00
options.alpha Conditionalize the alpha interrupt preemption for now to buy us some 2001-02-03 03:26:39 +00:00
options.i386 Activate USER_LDT by default. The new thread libraries are going to 2001-02-23 01:25:02 +00:00
options.ia64 Add SKI_ROOT_FILESYSTEM option. 2001-03-09 13:46:03 +00:00
options.pc98 Activate USER_LDT by default. The new thread libraries are going to 2001-02-23 01:25:02 +00:00
param.c Remove unneeded <stddef.h> #includes. 2000-10-29 16:57:42 +00:00
systags.sh $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00