Annotation of 43BSDReno/kerberosIV/man/acl_check.3, revision 1.1

1.1     ! root        1: .\" $Source: /mit/kerberos/src/man/RCS/acl_check.3,v $
        !             2: .\" $Author: jtkohl $
        !             3: .\" $Header: acl_check.3,v 4.1 89/01/23 11:06:54 jtkohl Exp $
        !             4: .\" Copyright 1989 by the Massachusetts Institute of Technology.
        !             5: .\"
        !             6: .\" For copying and distribution information,
        !             7: .\" please see the file <mit-copyright.h>.
        !             8: .\"
        !             9: .TH ACL_CHECK 3 "Kerberos Version 4.0" "MIT Project Athena"
        !            10: .SH NAME
        !            11: acl_canonicalize_principal, acl_check, acl_exact_match, acl_add,
        !            12: acl_delete, acl_initialize \- Access control list routines
        !            13: .SH SYNOPSIS
        !            14: .nf
        !            15: .nj
        !            16: .ft B
        !            17: cc <files> \-lacl \-lkrb
        !            18: .PP
        !            19: .ft B
        !            20: #include <krb.h>
        !            21: .PP
        !            22: .ft B
        !            23: acl_canonicalize_principal(principal, buf)
        !            24: char *principal;
        !            25: char *buf;
        !            26: .PP
        !            27: .ft B
        !            28: acl_check(acl, principal)
        !            29: char *acl;
        !            30: char *principal;
        !            31: .PP
        !            32: .ft B
        !            33: acl_exact_match(acl, principal)
        !            34: char *acl;
        !            35: char *principal;
        !            36: .PP
        !            37: .ft B
        !            38: acl_add(acl, principal)
        !            39: char *acl;
        !            40: char *principal;
        !            41: .PP
        !            42: .ft B
        !            43: acl_delete(acl, principal)
        !            44: char *acl;
        !            45: char *principal;
        !            46: .PP
        !            47: .ft B
        !            48: acl_initialize(acl_file, mode)
        !            49: char *acl_file;
        !            50: int mode;
        !            51: .fi
        !            52: .ft R
        !            53: .SH DESCRIPTION
        !            54: .SS Introduction
        !            55: .PP
        !            56: An access control list (ACL) is a list of principals, where each
        !            57: principal is represented by a text string which cannot contain
        !            58: whitespace.  The library allows application programs to refer to named
        !            59: access control lists to test membership and to atomically add and
        !            60: delete principals using a natural and intuitive interface.  At
        !            61: present, the names of access control lists are required to be Unix
        !            62: filenames, and refer to human-readable Unix files; in the future, when
        !            63: a networked ACL server is implemented, the names may refer to a
        !            64: different namespace specific to the ACL service.
        !            65: .PP
        !            66: .SS Principal Names
        !            67: .PP
        !            68: Principal names have the form
        !            69: .nf
        !            70: .in +5n
        !            71: <name>[.<instance>][@<realm>]
        !            72: .in -5n
        !            73: e.g.:
        !            74: .in +5n
        !            75: asp
        !            76: asp.root
        !            77: [email protected]
        !            78: [email protected]
        !            79: [email protected]
        !            80: .in -5n
        !            81: .fi
        !            82: It is possible for principals to be underspecified.  If an instance is
        !            83: missing, it is assumed to be "".  If realm is missing, it is assumed
        !            84: to be the local realm as determined by
        !            85: .IR krb_get_lrealm (3).
        !            86: The canonical form contains all of name, instance,
        !            87: and realm; the acl_add and acl_delete routines will always
        !            88: leave the file in that form.  Note that the canonical form of
        !            89: [email protected] is actually [email protected].
        !            90: .SS Routines
        !            91: .PP
        !            92: .I acl_canonicalize_principal
        !            93: stores the canonical form of 
        !            94: .I principal
        !            95: in 
        !            96: .IR buf .
        !            97: .I Buf
        !            98: must contain enough
        !            99: space to store a principal, given the limits on the sizes of name,
        !           100: instance, and realm specified as ANAME_SZ, INST_SZ, and REALM_SZ,
        !           101: respectively, in
        !           102: .IR /usr/include/krb.h .
        !           103: .PP
        !           104: .I acl_check
        !           105: returns nonzero if
        !           106: .I principal
        !           107: appears in 
        !           108: .IR acl .
        !           109: Returns 0 if principal
        !           110: does not appear in acl, or if an error occurs.  Canonicalizes
        !           111: principal before checking, and allows the ACL to contain wildcards.  The
        !           112: only supported wildcards are entries of the form
        !           113: name.*@realm, *.*@realm, and *.*@*.  An asterisk matches any value for the
        !           114: its component field.  For example, "jtkohl.*@*" would match principal
        !           115: jtkohl, with any instance and any realm.
        !           116: .PP
        !           117: .I acl_exact_match
        !           118: performs like 
        !           119: .IR acl_check ,
        !           120: but does no canonicalization or wildcard matching.
        !           121: .PP
        !           122: .I acl_add
        !           123: atomically adds 
        !           124: .I principal
        !           125: to 
        !           126: .IR acl .
        !           127: Returns 0 if successful, nonzero otherwise.  It is considered a failure
        !           128: if
        !           129: .I principal
        !           130: is already in 
        !           131: .IR acl .
        !           132: This routine will canonicalize
        !           133: .IR principal ,
        !           134: but will treat wildcards literally.
        !           135: .PP
        !           136: .I acl_delete
        !           137: atomically deletes 
        !           138: .I principal
        !           139: from 
        !           140: .IR acl .
        !           141: Returns 0 if successful,
        !           142: nonzero otherwise.  It is considered a failure if 
        !           143: .I principal
        !           144: is not
        !           145: already in 
        !           146: .IR acl .
        !           147: This routine will canonicalize 
        !           148: .IR principal ,
        !           149: but will treat wildcards literally.
        !           150: .PP
        !           151: .I acl_initialize
        !           152: initializes
        !           153: .IR acl_file .
        !           154: If the file 
        !           155: .I acl_file
        !           156: does not exist,
        !           157: .I acl_initialize
        !           158: creates it with mode
        !           159: .IR mode .
        !           160: If the file
        !           161: .I acl_file
        !           162: exists,
        !           163: .I acl_initialize
        !           164: removes all members.  Returns 0 if successful,
        !           165: nonzero otherwise.  WARNING: Mode argument is likely to change with
        !           166: the eventual introduction of an ACL service.  
        !           167: .SH NOTES
        !           168: In the presence of concurrency, there is a very small chance that
        !           169: .I acl_add
        !           170: or
        !           171: .I acl_delete
        !           172: could report success even though it would have
        !           173: had no effect.  This is a necessary side effect of using lock files
        !           174: for concurrency control rather than flock(2), which is not supported
        !           175: by NFS.
        !           176: .PP
        !           177: The current implementation caches ACLs in memory in a hash-table
        !           178: format for increased efficiency in checking membership; one effect of
        !           179: the caching scheme is that one file descriptor will be kept open for
        !           180: each ACL cached, up to a maximum of 8.
        !           181: .SH SEE ALSO
        !           182: kerberos(3), krb_get_lrealm(3)
        !           183: .SH AUTHOR
        !           184: James Aspnes (MIT Project Athena)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.