Mac Developer Library Developer


This manual page is part of Xcode Tools version 5.0

To obtain these tools:

If you are running a version of Xcode Tools other than 5.0, view the documentation locally:

  • In Xcode

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • To learn how the manual is organized or to learn about command syntax, read the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Developer Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.

MBR_UID_TO_UUID(3)       BSD Library Functions Manual       MBR_UID_TO_UUID(3)

     mbr_uid_to_uuid, mbr_gid_to_uuid, mbr_uuid_to_id, mbr_sid_to_uuid, mbr_uuid_to_sid -- user and group
     identifier translation functions

     #include <membership.h>

     mbr_uid_to_uuid(uid_t id, uuid_t uu);

     mbr_gid_to_uuid(gid_t id, uuid_t uu);

     mbr_uuid_to_id(const uuid_t uu, uid_t *id, int *id_type);

     mbr_sid_to_uuid(const nt_sid_t *sid, uuid_t uu);

     mbr_uuid_to_sid(const uuid_t uu, nt_sid_t *sid);

     mbr_sid_to_string(const nt_sid_t *sid, char *string);

     mbr_string_to_sid(const char *string, nt_sid_t *sid);

     Users and groups can be referred to in multiple ways.  In addition to the traditional uid and gid,
     every user or group can be referenced by a 128 bit uuid.  Additionally, if the user or group is hosted
     on a PDC or Active Directory server, it will have a 128 bit or larger sid.

     These routines communicate with openditectoryd(8).

     mbr_uid_to_uuid() takes a uid and looks up the associated user account.  It provides the the uuid for
     that user as an output parameter.  Note that this routine will succeed and return a fabricated uuid if
     the input user uid does not exist.  getpwuid() should be used to test for the existence of a uid.

     mbr_gid_to_uuid() similarly gets the uuid associated with a group.  Note that this routine will succeed
     and return a fabricated uuid if the input group gid does not exist.  getgrgid() should be used to test
     for the existence of a gid.

     mbr_uuid_to_id() takes a uuid that refers to a user or group and fetches the corresponding uid or gid.
     id_type is set to ID_TYPE_UID or ID_TYPE_GID to indicate which type was found.  Note that
     mbr_uuid_to_id() always returns an id even if the uuid is not found.  This returned id is not persis-tant, persistant,
     tant, but can be used to map back to the uuid during runtime.  To determine if the uuid exists, the
     returned id can be used in a call to getpwuid(3) or getgrgid(3).

     mbr_sid_to_uuid() takes a sid and returns the associated uuid.

     mbr_uuid_to_sid() returns a sid for the associated uuid.

     Two additional utility functions are available to convert between sids and a string representation.
     String representations may be required, for example, when text files or XML files are used to save sid

     mbr_sid_to_string() converts a sid into a string representation.  The string parameter must be a buffer
     of at least 194 characters.  The converted string is terminated with a nul character.

     mbr_string_to_sid() converts an external string representation into a sid.

     These functions return 0 on success or one of the following error codes on failure:

     [EIO]              Communication with openditectoryd(8) failed.

     [ENOENT]           The mapping can not be performed.

     [EAUTH]            Communication with openditectoryd(8) failed due to an authentication error.

     [EINVAL]           Invalid arguments were provided.

     [ENOMEM]           Insufficient storage space is available.

     mbr_gid_to_uuid() and mbr_uid_to_uuid() return 0 (success), even if the user/group does not exist.

     getpwuid(3), getgrgid(3), mbr_check_membership(3), openditectoryd(8)

Mac OS X                       October 10, 2011                       Mac OS X

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation with the feedback links below.
Bug reports
Report bugs in the functionality of the described tool or API through Bug Reporter.
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.