5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks * CDDL HEADER START
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks * The contents of this file are subject to the terms of the
94d2b9ab1a2f061b0f007e415667889b3abc36c8marks * Common Development and Distribution License (the "License").
94d2b9ab1a2f061b0f007e415667889b3abc36c8marks * You may not use this file except in compliance with the License.
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks * See the License for the specific language governing permissions
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks * and limitations under the License.
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks * When distributing Covered Code, include this CDDL HEADER in each
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks * If applicable, add the following below this CDDL HEADER, with the
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks * fields enclosed by brackets "[]" replaced with your own identifying
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks * information: Portions Copyright [yyyy] [name of copyright owner]
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks * CDDL HEADER END
b249c65cf0a7400e86a36ddab5c3fce085809859marks * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks * Use is subject to license terms.
b249c65cf0a7400e86a36ddab5c3fce085809859marks%token USER_TOK USER_SID_TOK GROUP_TOK GROUP_SID_TOK MASK_TOK OTHER_TOK
b249c65cf0a7400e86a36ddab5c3fce085809859marks%token OWNERAT_TOK GROUPAT_TOK EVERYONEAT_TOK DEFAULT_USER_TOK
b249c65cf0a7400e86a36ddab5c3fce085809859marks%token DEFAULT_GROUP_TOK DEFAULT_MASK_TOK DEFAULT_OTHER_TOK
5f41bf46ca5230bc3ee6b7d6a714a3a16a390261Mark Shellenbaum%token <str> ID IDNAME PERM_TOK INHERIT_TOK SID
5f41bf46ca5230bc3ee6b7d6a714a3a16a390261Mark Shellenbaum%token <val> ERROR ACE_PERM ACE_INHERIT ENTRY_TYPE ACCESS_TYPE
5f41bf46ca5230bc3ee6b7d6a714a3a16a390261Mark Shellenbaum%type <val> iflags verbose_iflag compact_iflag access_type entry_type
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks return (0);
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks /* This seems illegal, but the old aclfromtext() allows it */
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks return (0);
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks return (0);
5b233e2d88c4da66fe52338394923e92c67f6d94marks "Cannot have POSIX draft ACL entries"
5b233e2d88c4da66fe52338394923e92c67f6d94marks " with NFSv4/ZFS ACL entries.\n"));
5b233e2d88c4da66fe52338394923e92c67f6d94marks "Cannot have NFSv4/ZFS ACL entries"
5b233e2d88c4da66fe52338394923e92c67f6d94marks " with POSIX draft ACL entries.\n"));
5b233e2d88c4da66fe52338394923e92c67f6d94marks "Extra fields on the end of "
94d2b9ab1a2f061b0f007e415667889b3abc36c8marks "ACL specification.\n"));
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks | entry_type idname ace_perms iflags access_type COLON id
5b233e2d88c4da66fe52338394923e92c67f6d94marks "Extra fields on the end of "
94d2b9ab1a2f061b0f007e415667889b3abc36c8marks "ACL specification.\n"));
5b233e2d88c4da66fe52338394923e92c67f6d94marks "Extra fields on the end of "
94d2b9ab1a2f061b0f007e415667889b3abc36c8marks "ACL specification.\n"));
5b233e2d88c4da66fe52338394923e92c67f6d94marks "Extra fields on the end of "
94d2b9ab1a2f061b0f007e415667889b3abc36c8marks "ACL specification.\n"));
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarksaclent: entry_type idname aclent_perm /* user or group */
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks error = compute_aclent_perms($3.perm_str, &$$.a_perm);
94d2b9ab1a2f061b0f007e415667889b3abc36c8marks "Invalid permission(s) '%s' specified.\n"),
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks | entry_type COLON aclent_perm /* owner group other */
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks error = compute_aclent_perms($3.perm_str, &$$.a_perm);
94d2b9ab1a2f061b0f007e415667889b3abc36c8marks "Invalid permission(s) '%s' specified.\n"),
5b233e2d88c4da66fe52338394923e92c67f6d94marks "Extra fields on the end of ACL specification.\n"));
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks | entry_type idname aclent_perm COLON id /* user or group */
5b233e2d88c4da66fe52338394923e92c67f6d94marks "Extra fields on the end of ACL specification.\n"));
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks error = compute_aclent_perms($3.perm_str, &$$.a_perm);
94d2b9ab1a2f061b0f007e415667889b3abc36c8marks "Invalid permission(s) '%s' specified.\n"),
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks error = compute_aclent_perms($2.perm_str, &$$.a_perm);
94d2b9ab1a2f061b0f007e415667889b3abc36c8marks "Invalid permission(s) '%s' specified.\n"),
5b233e2d88c4da66fe52338394923e92c67f6d94marks "Invalid ACL entry type specified %d.\n"),
5b233e2d88c4da66fe52338394923e92c67f6d94marks "Extra fields on the end of ACL specification.\n"));
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks | COLON {$$ = 0;}
5b233e2d88c4da66fe52338394923e92c67f6d94marks "Can't mix compact inherit flags with"
94d2b9ab1a2f061b0f007e415667889b3abc36c8marks " verbose inheritance flags.\n"));
5b233e2d88c4da66fe52338394923e92c67f6d94marks "Can't mix verbose inherit flags with"
94d2b9ab1a2f061b0f007e415667889b3abc36c8marks " compact inheritance flags.\n"));
5b233e2d88c4da66fe52338394923e92c67f6d94marks "Inheritance flags can't be mixed with access type.\n"));
ec965100f097e34cc456d3090f870440179928f7marks return ($3);
5b233e2d88c4da66fe52338394923e92c67f6d94marks "ACL entry permissions are incorrectly specified.\n"));
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks return ($2);
ec965100f097e34cc456d3090f870440179928f7marks return ($1);
5b233e2d88c4da66fe52338394923e92c67f6d94marks "Invalid uid/gid specified.\nThe field"
94d2b9ab1a2f061b0f007e415667889b3abc36c8marks " should be a numeric value.\n"));
ec965100f097e34cc456d3090f870440179928f7marks return ($1);
ec965100f097e34cc456d3090f870440179928f7marks return ($1);
5b233e2d88c4da66fe52338394923e92c67f6d94marks "Can't mix verbose permissions with"
94d2b9ab1a2f061b0f007e415667889b3abc36c8marks " compact permission.\n"));
ec965100f097e34cc456d3090f870440179928f7marks return ($3);
ec965100f097e34cc456d3090f870440179928f7marks return ($1);