public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Nathan Scott <nathans@sgi.com>
To: Linus Torvalds <torvalds@transmeta.com>
Cc: Andreas Gruenbacher <agruen@suse.de>, linux-kernel@vger.kernel.org
Subject: [PATCH 2/2] POSIX ACL configuration option
Date: Mon, 7 Oct 2002 12:58:15 +1000	[thread overview]
Message-ID: <20021007025815.GD700@frodo> (raw)

Hi Linus,

This patch provides the configuration entry, help text and basic
header file definitions for filesystems that support POSIX ACLs.
The code implementing this in XFS is already merged in your tree,
we're just missing these enabling pieces and that previous umask
patch.

cheers.

-- 
Nathan


 fs/Config.help                  |    8 ++++
 fs/Config.in                    |    3 +
 include/linux/posix_acl_xattr.h |   67 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 78 insertions

diff -Naur 2.5.40-pristine/fs/Config.help 2.5.40-posixacl/fs/Config.help
--- 2.5.40-pristine/fs/Config.help	2002-09-18 13:50:18.000000000 +1000
+++ 2.5.40-posixacl/fs/Config.help	2002-10-06 16:47:25.000000000 +1000
@@ -18,6 +18,14 @@
   need this functionality say Y here. Note that you will need latest
   quota utilities for new quota format with this kernel.
 
+CONFIG_FS_POSIX_ACL
+  POSIX Access Control Lists (ACLs) support permissions for users and
+  groups beyond the owner/group/world scheme.
+
+  Refer to <http://acl.bestbits.at/> for more information about POSIX
+  ACLs on Linux.  If you wish to use ACLs, you'll need the getfacl(1)
+  and setfacl(1) utilities.  If unsure, say N.
+
 CONFIG_MINIX_FS
   Minix is a simple operating system used in many classes about OS's.
   The minix file system (method to organize files on a hard disk
diff -Naur 2.5.40-pristine/fs/Config.in 2.5.40-posixacl/fs/Config.in
--- 2.5.40-pristine/fs/Config.in	2002-09-18 13:50:18.000000000 +1000
+++ 2.5.40-posixacl/fs/Config.in	2002-10-06 16:46:26.000000000 +1000
@@ -10,6 +10,9 @@
 if [ "$CONFIG_QUOTA" = "y" ]; then
    define_bool CONFIG_QUOTACTL y
 fi
+
+bool 'POSIX Access Control Lists' CONFIG_FS_POSIX_ACL
+
 tristate 'Kernel automounter support' CONFIG_AUTOFS_FS
 tristate 'Kernel automounter version 4 support (also supports v3)' CONFIG_AUTOFS4_FS
 
diff -Naur 2.5.40-pristine/include/linux/posix_acl_xattr.h 2.5.40-posixacl/include/linux/posix_acl_xattr.h
--- 2.5.40-pristine/include/linux/posix_acl_xattr.h	1970-01-01 10:00:00.000000000 +1000
+++ 2.5.40-posixacl/include/linux/posix_acl_xattr.h	2002-10-06 16:45:06.000000000 +1000
@@ -0,0 +1,67 @@
+/*
+  File: linux/posix_acl_xattr.h
+
+  Extended attribute system call representation of Access Control Lists.
+
+  Copyright (C) 2000 by Andreas Gruenbacher <a.gruenbacher@computer.org>
+  Copyright (C) 2002 SGI - Silicon Graphics, Inc <linux-xfs@oss.sgi.com>
+ */
+#ifndef _POSIX_ACL_XATTR_H
+#define _POSIX_ACL_XATTR_H
+
+/* Extended attribute names */
+#define POSIX_ACL_XATTR_ACCESS	"system.posix_acl_access"
+#define POSIX_ACL_XATTR_DEFAULT	"system.posix_acl_default"
+
+/* Supported ACL a_version fields */
+#define POSIX_ACL_XATTR_VERSION	0x0002
+
+
+/* An undefined entry e_id value */
+#define ACL_UNDEFINED_ID	(-1)
+
+/* ACL entry e_tag field values */
+#define ACL_USER_OBJ		(0x01)
+#define ACL_USER		(0x02)
+#define ACL_GROUP_OBJ		(0x04)
+#define ACL_GROUP		(0x08)
+#define ACL_MASK		(0x10)
+#define ACL_OTHER		(0x20)
+
+/* ACL entry e_perm bitfield values */
+#define ACL_READ		(0x04)
+#define ACL_WRITE		(0x02)
+#define ACL_EXECUTE		(0x01)
+
+
+typedef struct {
+	__u16			e_tag;
+	__u16			e_perm;
+	__u32			e_id;
+} posix_acl_xattr_entry;
+
+typedef struct {
+	__u32			a_version;
+	posix_acl_xattr_entry	a_entries[0];
+} posix_acl_xattr_header;
+
+
+static inline size_t
+posix_acl_xattr_size(int count)
+{
+	return (sizeof(posix_acl_xattr_header) +
+		(count * sizeof(posix_acl_xattr_entry)));
+}
+
+static inline int
+posix_acl_xattr_count(size_t size)
+{
+	if (size < sizeof(posix_acl_xattr_header))
+		return -1;
+	size -= sizeof(posix_acl_xattr_header);
+	if (size % sizeof(posix_acl_xattr_entry))
+		return -1;
+	return size / sizeof(posix_acl_xattr_entry);
+}
+
+#endif	/* _POSIX_ACL_XATTR_H */

             reply	other threads:[~2002-10-07  2:53 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-07  2:58 Nathan Scott [this message]
2002-10-08 22:01 ` [PATCH 2/2] POSIX ACL configuration option Theodore Ts'o

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20021007025815.GD700@frodo \
    --to=nathans@sgi.com \
    --cc=agruen@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@transmeta.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox