2 .\" Copyright (c) 2003, Sun Microsystems, Inc. All Rights Reserved
3 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
4 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
5 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
6 .TH DDI_CRED 9F "Aug 6, 2003"
8 ddi_cred, crgetuid, crgetruid, crgetsuid, crgetgid, crgetrgid, crgetsgid,
9 crgetzoneid, crgetgroups, crgetngroups \- access and change parts of the cred_t
18 \fBuid_t\fR \fBcrgetuid\fR(\fBconst cred_t *\fR\fIcr\fR);
23 \fBuid_t\fR \fBcrgetruid\fR(\fBconst cred_t *\fR\fIcr\fR);
28 \fBuid_t\fR \fBcrgetsuid\fR(\fBconst cred_t *\fR\fIcr\fR);
33 \fBgid_t\fR \fBcrgetgid\fR(\fBconst cred_t *\fR\fIcr\fR);
38 \fBgid_t\fR \fBcrgetrgid\fR(\fBconst cred_t *\fR\fIcr\fR);
43 \fBgid_t\fR \fBcrgetsgid\fR(\fBconst cred_t *\fR\fIcr\fR);
48 \fBzoneid_t\fR \fBcrgetzoneid\fR(\fBconst cred_t *\fR\fIcr\fR);
53 \fBconst gid_t *\fR\fBcrgetgroups\fR(\fBconst cred_t *\fR\fIcr\fR);
58 \fBint\fR \fBcrgetngroups\fR(\fBconst cred_t *\fR\fIcr\fR);
63 \fBint\fR \fBcrsetresuid\fR(\fBcred_t *\fR\fIcr\fR, \fBuid_t\fR \fIruid\fR, \fBuid_t\fR \fIeuid\fR, \fBuid_t\fR \fIsuid\fR);
68 \fBint\fR \fBcrsetresgid\fR(\fBcred_t *\fR\fIcr\fR, \fBgid_t\fR \fIrgid\fR, \fBgid_t\fR \fIegid\fR, \fBgid_t\fR \fIsgid\fR);
73 \fBint\fR \fBcrsetugid\fR(\fBcred_t *\fR\fIcr\fR, \fBuid_t\fR \fIuid\fR, \fBgid_t\fR \fIgid\fR);
78 \fBint\fR \fBcrsetgroups\fR(\fBcred_t *\fR\fIcr\fR, \fBint\fR \fIngroups\fR, \fBgid_t\fR \fIgids\fR);
84 Solaris DDI specific (Solaris DDI).
92 pointer to the user credential structure
98 \fB\fIuid\fR, \fIruid\fR, \fIeuid\fR, \fIsuid\fR\fR
101 new user id, real, effective and saved user id
107 \fB\fIgid\fR, \fIrgid\fR, \fIegid\fR, \fIsgid\fR\fR
110 new group id, real, effective and saved group id
119 number of groups in the group array
128 pointer to array of new groups
134 The user credential is a shared, read-only, ref-counted data structure. Its
135 actual size and layout are subject to change. The functions described in this
136 page allow the programmer to retrieve fields from the structure and to
137 initialize newly allocated credential structures.
140 \fBcrgetuid()\fR, \fBcrgetruid()\fR, and \fBcrgetsuid()\fR return,
141 respectively, the effective, real, and saved user id from the user credential
142 pointed to by \fIcr\fR.
145 \fBcrgetgid()\fR, \fBcrgetrgid()\fR, and \fBcrgetsgid()\fR return,
146 respectively, the effective, real, and saved group id from the user credential
147 pointed to by \fIcr\fR.
150 \fBcrgetzoneid()\fR returns the zone id from the user credential pointed to by
154 \fBcrgetgroups()\fR returns the group list of the user credential pointed to by
158 \fBcrgetngroups()\fR returns the number of groups in the user credential
159 pointed to by \fIcr\fR.
162 \fBcrsetresuid()\fR sets the real, effective and saved user id. All but one can
163 be specified as -1, which causes the original value not to change.
166 \fBcrsetresgid()\fR sets the real, effective and saved group id. All but one
167 can be specified as -1, which causes the original value not to change.
170 \fBcrsetugid()\fR initializes the real, effective and saved user id \fBall\fR
171 to \fIuid\fR. It initializes the real, effective, and saved group id \fBall\fR
175 \fBcrsetgroups()\fR sets the number of groups in the user credential to
176 \fIngroups\fR and copies the groups from \fIgids\fR to the user credential. If
177 \fIngroups\fR is 0, \fIgids\fR need not point to valid storage.
180 It is an error to call this any of the \fBcrset*()\fR functions on a user
181 credential structure that was newly allocated.
185 The \fBcrget*()\fR functions return the requested information.
188 The \fBcrset*id()\fR functions return 0 on success and -1 if any of the
189 specified ids are invalid. The functions might cause a system panic if called
190 on a user credential structure that is referenced by other parts of the system.
194 These functions can be called from user and kernel contexts.
198 See \fBattributes\fR(5) for a description of the following attributes:
206 ATTRIBUTE TYPE ATTRIBUTE VALUE
210 Interface Stability Committed
216 \fBattributes\fR(5), \fBprivileges\fR(5), \fBdrv_priv\fR(9F)
219 \fIWriting Device Drivers\fR