Go to main content

man pages section 9: DDI and DKI Kernel Functions

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

crgetuid(9F)

Name

ddi_cred, crgetuid, crgetruid, crgetsuid, crgetgid, crgetrgid, crgetsgid, crgetzoneid, crgetgroups, crgetngroups - access and change parts of the cred_t structure

Synopsis

#include <sys/cred.h>

uid_t crgetuid(const cred_t *cr);
uid_t crgetruid(const cred_t *cr);
uid_t crgetsuid(const cred_t *cr);
gid_t crgetgid(const cred_t *cr);
gid_t crgetrgid(const cred_t *cr);
gid_t crgetsgid(const cred_t *cr);
zoneid_t crgetzoneid(const cred_t *cr);
const gid_t *crgetgroups(const cred_t *cr);
int crgetngroups(const cred_t *cr);
int crsetresuid(cred_t *cr, uid_t ruid, uid_t euid, uid_t suid);
int crsetresgid(cred_t *cr, gid_t rgid, gid_t egid, gid_t sgid);
int crsetugid(cred_t *cr, uid_t uid, gid_t gid);
int crsetgroups(cred_t *cr, int ngroups, gid_t gids);

Interface Level

Solaris DDI specific (Solaris DDI).

Parameters

cr

pointer to the user credential structure

uid, ruid, euid, suid

new user id, real, effective and saved user id

gid, rgid, egid, sgid

new group id, real, effective and saved group id

ngroups

number of groups in the group array

gids

pointer to array of new groups

Description

The user credential is a shared, read-only, ref-counted data structure. Its actual size and layout are subject to change. The functions described in this page allow the programmer to retrieve fields from the structure and to initialize newly allocated credential structures.

crgetuid(), crgetruid(), and crgetsuid() return, respectively, the effective, real, and saved user id from the user credential pointed to by cr.

crgetgid(), crgetrgid(), and crgetsgid() return, respectively, the effective, real, and saved group id from the user credential pointed to by cr.

crgetzoneid() returns the zone id from the user credential pointed to by cr.

crgetgroups() returns the group list of the user credential pointed to by cr.

crgetngroups() returns the number of groups in the user credential pointed to by cr.

crsetresuid() sets the real, effective and saved user id. All but one can be specified as -1, which causes the original value not to change.

crsetresgid() sets the real, effective and saved group id. All but one can be specified as -1, which causes the original value not to change.

crsetugid() initializes the real, effective and saved user id all to uid. It initializes the real, effective, and saved group id all to gid.

crsetgroups() sets the number of groups in the user credential to ngroups and copies the groups from gids to the user credential. If ngroups is 0, gids need not point to valid storage.

It is an error to call this any of the crset*() functions on a user credential structure that was newly allocated.

Return Values

The crget*() functions return the requested information.

The crset*id() functions return 0 on success and -1 if any of the specified ids are invalid. The functions might cause a system panic if called on a user credential structure that is referenced by other parts of the system.

Context

These functions can be called from user and kernel contexts.

Attributes

See attributes(7) for a description of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Architecture
All
Interface Stability
Committed

See Also

attributes(7), privileges(7), drv_priv(9F)

Writing Device Drivers in Oracle Solaris 11.4