History log of /freebsd-10.0-release/usr.sbin/extattrctl/extattrctl.c
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 259065 07-Dec-2013 gjb

- Copy stable/10 (r259064) to releng/10.0 as part of the
10.0-RELEASE cycle.
- Update __FreeBSD_version [1]
- Set branch name to -RC1

[1] 10.0-CURRENT __FreeBSD_version value ended at '55', so
start releng/10.0 at '100' so the branch is started with
a value ending in zero.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


# 216292 08-Dec-2010 kevlo

Close fd in initattr() and showattr().

Reviewed by: rwatson


# 201387 02-Jan-2010 ed

ANSIfy some more tools in usr.sbin/.

Most of these tools build with WARNS=6, except for their use of K&R
function declarations.


# 95018 18-Apr-2002 rwatson

Clean up usage message: don't put optional parameter's in brackets.
Update copyright date.

Obtained from: TrustedBSD Project
Sponsored by: DARPA, NAI Labs
Extracted from: green


# 93928 06-Apr-2002 des

Simplify and optimize. This speeds up 'initattr' enormously for small
attribute sizes (up to two orders of magnitude!)


# 88740 31-Dec-2001 rwatson

o Add a 'showattr' function the extattrctl, allowing a backing file to
be inspected to show the maximum attribute size and file.


# 86994 27-Nov-2001 jedgar

Make extattrctl WARNS?=2-safe:
o remove extraneous extern's
o prototype functions
o combine multiple return (0)'s into a single return (0) at the
end of main()

Approved by: rwatson
Obtained from: TrustedBSD Project


# 86429 15-Nov-2001 rwatson

o Update copyright dates, comments...

Obtained from: TrustedBSD Project


# 86428 15-Nov-2001 rwatson

o extattrctl initattr, when pre-allocating store for extended attributes,
computed a a chunksize that didn't include the extended attribute
header. This was a non-fatal error, in that it was just writing out
zeros anyway, but did have the effect of not pre-allocating the
right amount of disk space. This fix calculates chunksize to include
the attribute header.

Submitted by: Dale Rahn
Sponsored by: DARPA, UPenn POSSE Project
Obtained from: OpenBSD


# 74441 19-Mar-2001 rwatson

o Rename "namespace" argument to "attrnamespace" as namespace is a C++
reserved word.

Submitted by: jkh
Obtained from: TrustedBSD Project


# 74394 17-Mar-2001 tmm

Correct the arguments to the extattrct()l call so that the enable and
disable commands work as documented.

Approved by: rwatson


# 74275 15-Mar-2001 rwatson

o Update extattrctl to take into account the updated EA interface with
explicit namespaces. Modify it to use libutil for string/constant
namespace conversions. Update the documentation to take into account
the new interface.

Obtained from: TrustedBSD Project


# 70003 13-Dec-2000 rwatson

o Check return of strdup() for NULL, abort if so.

Submitted by: jedgar


# 65777 12-Sep-2000 rwatson

o What a good idea, ``-o'' should be a ``-f'' like in every other
utility that is cautious but sometimes you want to be less
cautious. Go figure.

Submitted by: sheldonh


# 65767 12-Sep-2000 rwatson

o Add a ``-o'' argument to initattr, which causes extattrctl to overwrite
the existing attribute file rather than aborting with an error.
o Useful if you want to reset the state of attributes on the system without
allocating different disk blocks through deletion and recreation,
for example, if you're doing benchmarks of extended attribute code. :-)

Obtained from: TrustedBSD Project


# 65589 07-Sep-2000 rwatson

o When pre-allocating attribute storage space, also allocate space for
attribute instance headers, or higher inode numbers will require
additional disk blocks to be allocated later.

Obtained from: TrustedBSD Project


# 65377 02-Sep-2000 rwatson

Modify extended attribute protection model to authorize based on
attribute namespace and DAC protection on file:
- Attribute names beginning with '$' are in the system namespace
- The attribute name "$" is reserved
- System namespace attributes may only be read/set by suser()
or by kernel (cred == NULL)
- Other attribute names are in the application namespace
- The attribute name "" is reserved
- Application namespace attributes are protected in the manner
of the target file permission

o Kernel changes
- Add ufs_extattr_valid_attrname() to check whether the requested
attribute "set" or "enable" is appropriate (i.e., non-reserved)
- Modify ufs_extattr_credcheck() to accept target file vnode, not
to take inode uid
- Modify ufs_extattr_credcheck() to check namespace, then enforce
either kernel/suser for system namespace, or vaccess() for
application namespace
o EA backing file format changes
- Remove permission fields from extended attribute backing file
header
- Bump extended attribute backing file header version to 3
o Update extattrctl.c and extattrctl.8
- Remove now deprecated -r and -w arguments to initattr, as
permissions are now implicit
- (unrelated) fix error reporting and unlinking during failed
initattr to remove duplicate/inaccurate error messages, and to
only unlink if the failure wasn't in the backing file open()

Obtained from: TrustedBSD Project


# 62995 12-Jul-2000 rwatson

o Correct getopt() argument so that initattr -r and -w take an additional
argument via optarg. This corrects a segfault when initattr is invoked
with either of these two arguments. Not sure how this got broken given
that in the original patches it was fine -- presumably a merging
mistake.

Obtained from: TrustedBSD Project


# 59446 20-Apr-2000 rwatson

o Update extattrctl.8 to reflect new initattr -p, -r, and -w options.
o Update extattrctl.c to default new attributes to readable and writable
only by the kernel and root user. Previously the default was to allow
the file owner to directory view and manipulate the attributes, which
is probably an inappropriate default.


# 59445 20-Apr-2000 rwatson

o Allow the ``-p'' argument to be specified to initattr, which indicates
that space for extended attributes should be preallocated, instead of
using a sparse attribute file. NOTE: This can result in a really
large file full of zeros. However, it can prevent a low disk condition
from causing an attribute write to fail, which is good for security and
consistency attributes.

o Unlink the attribute file during initattr if an error occurs -- this is
alright, as we specify O_CREAT when opening the file.


# 59401 19-Apr-2000 rwatson

o Update initattr to add magic numbers and version number


# 59247 15-Apr-2000 rwatson

Introduced /usr/sbin/extattrctl, a utility for managing UFS/FFS extended
attributes (recently committed). Using extattrctl, the extended attribute
service may be started and stopped for specific file systems; specific
attributes may be enabled or disabled, and the backing file for each
attribute configured. Also, backing files may be initialized.

Reviewed by: adrian, bp, freebsd-fs, the unthanked masses
Obtained from: TrustedBSD