diff options
author | phk <phk@FreeBSD.org> | 2002-09-02 19:28:59 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2002-09-02 19:28:59 +0000 |
commit | 5f194761d66ccad78c5ba502671cb3dda1d9e268 (patch) | |
tree | 9711ce93fbc1503be31479927afea056beea4d6f | |
parent | 49e348fa488ebb81ef2e61bed1a9d4aee0c58275 (diff) | |
download | FreeBSD-src-5f194761d66ccad78c5ba502671cb3dda1d9e268.zip FreeBSD-src-5f194761d66ccad78c5ba502671cb3dda1d9e268.tar.gz |
Switch over to the new EA manipulation utilities.
Sponsored by: DARPA & NAI Labs.
-rw-r--r-- | usr.sbin/Makefile | 3 | ||||
-rw-r--r-- | usr.sbin/getextattr/Makefile | 8 | ||||
-rw-r--r-- | usr.sbin/getextattr/getextattr.8 | 109 | ||||
-rw-r--r-- | usr.sbin/getextattr/getextattr.c | 177 | ||||
-rw-r--r-- | usr.sbin/setextattr/Makefile | 8 | ||||
-rw-r--r-- | usr.sbin/setextattr/setextattr.8 | 89 | ||||
-rw-r--r-- | usr.sbin/setextattr/setextattr.c | 74 |
7 files changed, 1 insertions, 467 deletions
diff --git a/usr.sbin/Makefile b/usr.sbin/Makefile index eba209f..7e26e25 100644 --- a/usr.sbin/Makefile +++ b/usr.sbin/Makefile @@ -27,13 +27,13 @@ SUBDIR= IPXrouted \ digictl \ edquota \ elf2aout \ + extattr \ extattrctl \ faithd \ fdcontrol \ fdformat \ fdread \ fdwrite \ - getextattr \ ifmcstat \ inetd \ iostat \ @@ -93,7 +93,6 @@ SUBDIR= IPXrouted \ rtsold \ rwhod \ sa \ - setextattr \ setkey \ sliplogin \ slstat \ diff --git a/usr.sbin/getextattr/Makefile b/usr.sbin/getextattr/Makefile deleted file mode 100644 index c16e644..0000000 --- a/usr.sbin/getextattr/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $FreeBSD$ - -PROG= getextattr -MAN= getextattr.8 - -WARNS?= 2 - -.include <bsd.prog.mk> diff --git a/usr.sbin/getextattr/getextattr.8 b/usr.sbin/getextattr/getextattr.8 deleted file mode 100644 index b2798eb..0000000 --- a/usr.sbin/getextattr/getextattr.8 +++ /dev/null @@ -1,109 +0,0 @@ -.\"- -.\" Copyright (c) 2000, 2001, 2002 Robert N. M. Watson -.\" All rights reserved. -.\" -.\" This software was developed by Robert Watson for the TrustedBSD -.\" Project. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $FreeBSD$ -.\" -.Dd March 30, 2000 -.Dt GETEXTATTR 8 -.Os -.Sh NAME -.Nm getextattr -.Nd retrieve a named extended attribute -.Sh SYNOPSIS -.Nm -.Op Fl ls -.Ar attrnamespace -.Ar attrname -.Ar filename ... -.Sh DESCRIPTION -The -.Nm -utility is a user tool to retrieve a named extended attribute on a file or -directory. -The -.Ar attrnamespace -argument should be the namespace of the attribute to retrieve: legal -values are "user" and "system". -The -.Ar attrname -argument should be the name of the attribute, and -.Ar filename -a list of files and directories from which to retrieve attribute data. -.Pp -The following options are available: -.Bl -tag -width indent -.It Fl l -Print attributes in the first column and file names in the second. -Can be used only in conjunction with the -.Fl s -option. -.It Fl s -Attempt to display the attribute data as a string, although the -results may not look pretty if the data is binary data. -The -.Xr strvisx 3 -function is used to generate the string, so control sequences should -be safely escaped. -Otherwise, the attribute data will be represented as a series of two-digit -hex numbers. -.El -.Sh IMPLEMENTATION NOTES -In order for -.Nm -to succeed, the attribute service must be available on the file system, -and the attribute must of defined for the file queried. -.Sh EXAMPLES -.Bd -literal -offset indent -# getextattr system md5 /boot/kernel/kernel -/boot/kernel/kernel: - 61 61 33 62 39 39 66 65 31 35 35 32 31 62 65 32 - 62 36 38 36 62 31 66 39 63 64 33 39 35 36 36 31 -# getextattr -s system md5 /boot/kernel/kernel -/boot/kernel/kernel: "aa3b99fe15521be2b686b1f9cd395661" -.Ed -.Pp -Retrieve the -.Dq md5 -extended attribute for the file -.Pa /boot/kernel/kernel . -.Sh SEE ALSO -.Xr extattr 2 , -.Xr extattr 3 , -.Xr extattrctl 8 , -.Xr setextattr 8 , -.Xr extattr 9 -.Sh HISTORY -Extended attribute support was developed as part of the TrustedBSD Project, -and introduced in -.Fx 5.0 . -It was developed to support security extensions requiring additional labels -to be associated with each file or directory. -.Sh AUTHORS -Robert N M Watson -.Sh BUGS -The output format for this utility is ugly, and worse yet, not very useful. diff --git a/usr.sbin/getextattr/getextattr.c b/usr.sbin/getextattr/getextattr.c deleted file mode 100644 index 64bc9ac..0000000 --- a/usr.sbin/getextattr/getextattr.c +++ /dev/null @@ -1,177 +0,0 @@ -/*- - * Copyright (c) 1999, 2000, 2001, 2002 Robert N. M. Watson - * Copyright (c) 2002 Networks Associates Technology, Inc. - * All rights reserved. - * - * This software was developed by Robert Watson for the TrustedBSD Project. - * - * This software was developed for the FreeBSD Project in part by NAI Labs, - * the Security Research Division of Network Associates, Inc. under - * DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA - * CHATS research program. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The names of the authors may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ -/* - * TrustedBSD Project - extended attribute support - */ -#include <sys/types.h> -#include <sys/uio.h> -#include <sys/extattr.h> - -#include <libutil.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include <vis.h> -#include <err.h> - -#define BUFSIZE 2048 - -void usage(void); - -void -usage(void) -{ - - fprintf(stderr, "getextattr [-ls] [attrnamespace] [attrname] " - "[filename ...]\n"); - exit(-1); -} - -int -main(int argc, char *argv[]) -{ - size_t len; - char *attrname; - char *buf, *visbuf, *p, *pe; - int ch, error, i, arg_counter, attrnamespace; - - int flag_as_string = 0; - int flag_reverse = 0; - - while ((ch = getopt(argc, argv, "ls")) != -1) { - switch (ch) { - case 'l': - flag_reverse = 1; - case 's': - flag_as_string = 1; - break; - case '?': - default: - usage(); - } - } - - argc -= optind; - argv += optind; - - if (argc < 3) - usage(); - - error = extattr_string_to_namespace(argv[0], &attrnamespace); - if (error) - err(-1, argv[0]); - attrname = argv[1]; - - argc--; - argv++; - - /* - * XXX: Note: now that EAs support querying the size, we could - * actually allocate a buffer of the right size, rather than - * truncating at BUFSIZE. - */ - for (arg_counter = 1; arg_counter < argc; arg_counter++) { - len = extattr_get_file(argv[arg_counter], attrnamespace, - attrname, NULL, 0); - if (len == -1) { - perror(argv[arg_counter]); - continue; - } - buf = (char *)malloc(len); - if (buf == NULL) { - perror("malloc"); - return (-1); - } - error = extattr_get_file(argv[arg_counter], attrnamespace, - attrname, buf, BUFSIZE); - if (error == -1) { - perror(argv[arg_counter]); - free(buf); - continue; - } - len = error; - if (strlen(attrname) == 0) { /* looking for EA names */ - visbuf = (char *)malloc(len*4); - p = buf; - pe = buf + len; - printf("%s:", argv[arg_counter]); - for (p = buf; p < pe; p += i + 1) { - i = *p; - strvisx(visbuf, p + 1, i, - VIS_SAFE | VIS_WHITE); - printf(" \"%s\"", visbuf); - } - free(visbuf); - printf("\n"); - } else if (flag_as_string) { - if (len > 0) { - visbuf = (char *)malloc(len*4); - if (visbuf == NULL) { - perror("malloc"); - return (-1); - } - strvisx(visbuf, buf, len, VIS_SAFE | VIS_WHITE); - } else { - visbuf = strdup(""); - } - if (flag_reverse) { - printf("\"%s\" ", visbuf); - printf("%s\n", argv[arg_counter]); - } else { - printf("%s:", argv[arg_counter]); - printf(" \"%s\"\n", visbuf); - } - free(visbuf); - } else { - printf("%s:", argv[arg_counter]); - for (i = 0; i < len; i++) - if (i % 16 == 0) - printf("\n %02x ", buf[i]); - else if (i % 8 == 0) - printf(" %02x ", buf[i]); - else - printf("%02x ", buf[i]); - printf("\n"); - } - free(buf); - } - - return (0); -} diff --git a/usr.sbin/setextattr/Makefile b/usr.sbin/setextattr/Makefile deleted file mode 100644 index 7eaf132..0000000 --- a/usr.sbin/setextattr/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $FreeBSD$ - -PROG= setextattr -MAN= setextattr.8 - -WARNS?= 2 - -.include <bsd.prog.mk> diff --git a/usr.sbin/setextattr/setextattr.8 b/usr.sbin/setextattr/setextattr.8 deleted file mode 100644 index ea9a147..0000000 --- a/usr.sbin/setextattr/setextattr.8 +++ /dev/null @@ -1,89 +0,0 @@ -.\"- -.\" Copyright (c) 2000, 2001 Robert N. M. Watson -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $FreeBSD$ -.\" -.Dd March 30, 2000 -.Dt SETEXTATTR 8 -.Os -.Sh NAME -.Nm setextattr -.Nd set a named extended attribute -.Sh SYNOPSIS -.Nm -.Ar attrnamespace -.Ar attrname -.Ar filename -.Ar attrvalue -.Sh DESCRIPTION -The -.Nm -utility -is a user tool to set a named extended attribute on a file or directory to -the provided string. -The -.Ar attrnamespace -argument should be the namespace of the attribute to retrieve: legal -values are "user" and "system". -The -.Ar attrname -argument should be the name of the attribute, -.Ar filename -the name of the file or directory to set the attribute for, and -.Ar attrvalue -a string to store in the attribute. -The -.Nm -utility will store the string in the file's attribute. -In order for -.Nm -to succeed, the attribute service must be available on the file system, -and appropriate privilege may be required. -.Sh EXAMPLES -.Dl # setextattr system md5 /boot/kernel/kernel `md5 -q /boot/kernel/kernel` -.Pp -Set the -.Dq md5 -extended attribute on the file /boot/kernel/kernel to the string -containing the output of -.Dq md5 -q /boot/kernel/kernel . -.Sh SEE ALSO -.Xr extattr 2 , -.Xr extattr 3 , -.Xr extattrctl 8 , -.Xr getextattr 8 , -.Xr extattr 9 -.Sh HISTORY -Extended attribute support was developed as part of the TrustedBSD Project, -and introduced in -.Fx 5.0 . -It was developed to support security extensions requiring additional labels -to be associated with each file or directory. -.Sh AUTHORS -Robert N M Watson -.Sh BUGS -The -.Nm -utility can only be used to set attributes to strings. diff --git a/usr.sbin/setextattr/setextattr.c b/usr.sbin/setextattr/setextattr.c deleted file mode 100644 index de68e68..0000000 --- a/usr.sbin/setextattr/setextattr.c +++ /dev/null @@ -1,74 +0,0 @@ -/*- - * Copyright (c) 1999, 2000, 2001 Robert N. M. Watson - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ -/* - * TrustedBSD Project - extended attribute support for UFS-like file systems - */ - -#include <sys/types.h> -#include <sys/uio.h> -#include <sys/extattr.h> - -#include <libutil.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -void usage(void); - -void -usage(void) -{ - - fprintf(stderr, "setextattr [attrnamespace] [attrname] [filename] " - "[attrvalue]\n"); - exit(-1); -} - -int -main(int argc, char *argv[]) -{ - int error, attrnamespace; - - if (argc != 5) - usage(); - - error = extattr_string_to_namespace(argv[1], &attrnamespace); - if (error) { - perror(argv[1]); - return (-1); - } - - error = extattr_set_file(argv[3], attrnamespace, argv[2], argv[4], - strlen(argv[4])); - if (error == -1) { - perror(argv[3]); - return (-1); - } - - return (0); -} |