makeuuid [-e ether] [-n count] [-R root]
The makeuuid command generates UUIDs (Universal Unique Identifiers) conforming to the OSF DCE specification for UUIDs. The specification states:
"A UUID is an identifier that is unique across both space and time, with respect to the space of all UUIDs. A UUID can be used for multiple purposes, from tagging objects with an extremely short lifetime, to reliably identifying very persistent objects across a network.
"The generation of UUIDs does not require a registration authority for each single identifier. Instead, it requires a unique value over space for each UUID generator. This spatially unique value is [normally] specified as an IEEE 802 address, which is usually already applied to network-connected systems."
The makeuuid command generates one or more UUIDs on the standard output.
The makeuuid command supports the following options:
Supplies an alternate address to be used in the generation of the UUIDs. Normally, the system's Ethernet address is acquired and used during the generation of a UUID. However, this requires root privileges to open and read the network devices. If this is not possible, you must supply an alternate Ethernet address.
Generate multiple UUIDs. This option generates the specified number of UUIDs, one per line. Using this form is more efficient than, and functionally equivalent to, calling the makeuuid command multiple times. This can be used, for example, when a large number of UUIDs need to be generated for a given application.
Use root as the root filesystem path when updating the shared state file (see FILES). The shared state file must be writable by the user running makeuuid, otherwise no UUIDs will be generated and the command will return in failure.
Note - The root file system of any non-global zones must not be referenced with the -R option. Doing so might damage the global zone's file system, might compromise the security of the global zone, and might damage the non-global zone's file system. See zones(5).
Normally, you run the makeuuid command with root privileges, as the Ethernet address and state files can be easily accessed and updated. If this is not possible, you must use the -R and -e options to specify an alternate root and Ethernet address to use when calculating the UUIDs.
Example 1: Generating Multiple UUIDs
The following command generates 3000 UUIDs:
example# makeuuid -n 3000
Example 2: Invoking Without Root Privileges
If you cannot obtain root privileges, you must specify an alternate Ethernet address and state file location:
example% makeuuid -e 11:22:33:44:55:66 -R /export/root/example2
See the caveat on the use of the -R option in the description of that option, above.
The following exit values are returned:
0 Successful completion.
1 Out of memory.
-1 Invalid Ethernet address given or access denied.
/var/sadm/system/uuid_state UUID state file. Use of time values is one way that UUID generators, such as makeuuid, guarantee uniqueness. A state file is a mechanism that allows makeuuid to "remember" the last time value it used so it can increment that value for use in a new UUID. See the Internet Draft "UUIDs and GUIDs," dated February 4, 1998, for details on the state file mechanism.
See attributes(5) for descriptions of the following attributes:
|ATTRIBUTE TYPE||ATTRIBUTE VALUE|
prodreg(1M), intro(3), libwsreg(3LIB), attributes(5)
The formal UUID specification is in the OSF DCE specification, available at www.opengroup.org. As of the date of publication of this man page, a copy of the specification is available at:
Sun has no control over the availability of documents on the www.opengroup.org web site.