openpkg/uuid.8

Mon, 20 Apr 2009 19:22:00 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Mon, 20 Apr 2009 19:22:00 +0200
changeset 178
0ba300bdf30a
child 428
f880f219c566
permissions
-rw-r--r--

Change unfortunate but partly useful overreaching security tradeoff.
The principle of allocating each running process an individual system
user and group can have security benefits, however maintining a plethora
of users, groups, processes, file modes, file permissions, and even
nonportable file ACLs on a host serving from a hundred processes has
some security disadvantages. This tradeoff is even worse for systems
like OpenPKG which benefit from administration transparency through the
use of minimal system intrusion and only three usage privilege levels.

michael@13 1 .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
michael@13 2 .\"
michael@13 3 .\" Standard preamble:
michael@13 4 .\" ========================================================================
michael@13 5 .de Sh \" Subsection heading
michael@13 6 .br
michael@13 7 .if t .Sp
michael@13 8 .ne 5
michael@13 9 .PP
michael@13 10 \fB\\$1\fR
michael@13 11 .PP
michael@13 12 ..
michael@13 13 .de Sp \" Vertical space (when we can't use .PP)
michael@13 14 .if t .sp .5v
michael@13 15 .if n .sp
michael@13 16 ..
michael@13 17 .de Vb \" Begin verbatim text
michael@13 18 .ft CW
michael@13 19 .nf
michael@13 20 .ne \\$1
michael@13 21 ..
michael@13 22 .de Ve \" End verbatim text
michael@13 23 .ft R
michael@13 24 .fi
michael@13 25 ..
michael@13 26 .\" Set up some character translations and predefined strings. \*(-- will
michael@13 27 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
michael@13 28 .\" double quote, and \*(R" will give a right double quote. | will give a
michael@13 29 .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
michael@13 30 .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
michael@13 31 .\" expand to `' in nroff, nothing in troff, for use with C<>.
michael@13 32 .tr \(*W-|\(bv\*(Tr
michael@13 33 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
michael@13 34 .ie n \{\
michael@13 35 . ds -- \(*W-
michael@13 36 . ds PI pi
michael@13 37 . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
michael@13 38 . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
michael@13 39 . ds L" ""
michael@13 40 . ds R" ""
michael@13 41 . ds C`
michael@13 42 . ds C'
michael@13 43 'br\}
michael@13 44 .el\{\
michael@13 45 . ds -- \|\(em\|
michael@13 46 . ds PI \(*p
michael@13 47 . ds L" ``
michael@13 48 . ds R" ''
michael@13 49 'br\}
michael@13 50 .\"
michael@13 51 .\" If the F register is turned on, we'll generate index entries on stderr for
michael@13 52 .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
michael@13 53 .\" entries marked with X<> in POD. Of course, you'll have to process the
michael@13 54 .\" output yourself in some meaningful fashion.
michael@13 55 .if \nF \{\
michael@13 56 . de IX
michael@13 57 . tm Index:\\$1\t\\n%\t"\\$2"
michael@13 58 ..
michael@13 59 . nr % 0
michael@13 60 . rr F
michael@13 61 .\}
michael@13 62 .\"
michael@13 63 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
michael@13 64 .\" way too many mistakes in technical documents.
michael@13 65 .hy 0
michael@13 66 .if n .na
michael@13 67 .\"
michael@13 68 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
michael@13 69 .\" Fear. Run. Save yourself. No user-serviceable parts.
michael@13 70 . \" fudge factors for nroff and troff
michael@13 71 .if n \{\
michael@13 72 . ds #H 0
michael@13 73 . ds #V .8m
michael@13 74 . ds #F .3m
michael@13 75 . ds #[ \f1
michael@13 76 . ds #] \fP
michael@13 77 .\}
michael@13 78 .if t \{\
michael@13 79 . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
michael@13 80 . ds #V .6m
michael@13 81 . ds #F 0
michael@13 82 . ds #[ \&
michael@13 83 . ds #] \&
michael@13 84 .\}
michael@13 85 . \" simple accents for nroff and troff
michael@13 86 .if n \{\
michael@13 87 . ds ' \&
michael@13 88 . ds ` \&
michael@13 89 . ds ^ \&
michael@13 90 . ds , \&
michael@13 91 . ds ~ ~
michael@13 92 . ds /
michael@13 93 .\}
michael@13 94 .if t \{\
michael@13 95 . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
michael@13 96 . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
michael@13 97 . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
michael@13 98 . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
michael@13 99 . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
michael@13 100 . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
michael@13 101 .\}
michael@13 102 . \" troff and (daisy-wheel) nroff accents
michael@13 103 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
michael@13 104 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
michael@13 105 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
michael@13 106 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
michael@13 107 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
michael@13 108 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
michael@13 109 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
michael@13 110 .ds ae a\h'-(\w'a'u*4/10)'e
michael@13 111 .ds Ae A\h'-(\w'A'u*4/10)'E
michael@13 112 . \" corrections for vroff
michael@13 113 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
michael@13 114 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
michael@13 115 . \" for low resolution devices (crt and lpr)
michael@13 116 .if \n(.H>23 .if \n(.V>19 \
michael@13 117 \{\
michael@13 118 . ds : e
michael@13 119 . ds 8 ss
michael@13 120 . ds o a
michael@13 121 . ds d- d\h'-1'\(ga
michael@13 122 . ds D- D\h'-1'\(hy
michael@13 123 . ds th \o'bp'
michael@13 124 . ds Th \o'LP'
michael@13 125 . ds ae ae
michael@13 126 . ds Ae AE
michael@13 127 .\}
michael@13 128 .rm #[ #] #H #V #F C
michael@13 129 .\" ========================================================================
michael@13 130 .\"
michael@13 131 .IX Title "UUID 8"
michael@13 132 .TH UUID 8 "OpenPKG" "UUID(8)" "OpenPKG"
michael@13 133 .SH "NAME"
michael@13 134 \&\fBopenpkg uuid\fR \- OpenPKG UUID Update Utility
michael@13 135 .SH "SYNOPSIS"
michael@13 136 .IX Header "SYNOPSIS"
michael@13 137 \&\fBopenpkg uuid\fR [\fB\-\-verbose\fR] [\fB\-\-multicast\fR] \fBreset\fR|\fBupdate\fR|\fBinfo\fR
michael@13 138 .SH "DESCRIPTION"
michael@13 139 .IX Header "DESCRIPTION"
michael@13 140 The \fBopenpkg uuid\fR command is the maintenance utility for the \s-1DCE\s0 1.1
michael@13 141 and \s-1ISO/IEC\s0 11578:1996 compliant \fIUniversally Unique Identifiers\fR
michael@13 142 (\s-1UUID\s0) of an \fBOpenPKG\fR instance. It is internally based on \fB\s-1OSSP\s0
michael@13 143 uuid\fR.
michael@13 144 .PP
michael@13 145 UUIDs are 128 bit numbers which are intended to have a high likelihood
michael@13 146 of uniqueness over space and time and are computationally difficult
michael@13 147 to guess. They are globally unique identifiers which can be locally
michael@13 148 generated without contacting a global registration authority. UUIDs are
michael@13 149 intended as unique identifiers for both mass tagging objects with an
michael@13 150 extremely short lifetime and to reliably identifying very persistent
michael@13 151 objects across a network. The three classical \s-1UUID\s0 variants are \s-1DCE\s0 1.1
michael@13 152 UUIDs of version 1 (time and node based), version 3 (name based) and
michael@13 153 version 4 (random number based).
michael@13 154 .PP
michael@13 155 For an \fBOpenPKG\fR instance, three different UUIDs are used:
michael@13 156 .ie n .IP "1. \fBOpenPKG Registry\fR (\*(C`UUID_REGISTRY\*(C')" 3
michael@13 157 .el .IP "1. \fBOpenPKG Registry\fR (\f(CW\*(C`UUID_REGISTRY\*(C'\fR)" 3
michael@13 158 .IX Item "1. OpenPKG Registry (UUID_REGISTRY)"
michael@13 159 This is a version 1 \s-1UUID\s0 which uniquely identifiers the \fBOpenPKG\fR
michael@13 160 instance for global registration purposes. It is generated just once in
michael@13 161 the lifetime of the \fBOpenPKG\fR instance. The value of this \s-1UUID\s0 cannot
michael@13 162 be recalculated deterministically.
michael@13 163 .ie n .IP "2. \fBOpenPKG Instance\fR (\*(C`UUID_INSTANCE\*(C')" 3
michael@13 164 .el .IP "2. \fBOpenPKG Instance\fR (\f(CW\*(C`UUID_INSTANCE\*(C'\fR)" 3
michael@13 165 .IX Item "2. OpenPKG Instance (UUID_INSTANCE)"
michael@13 166 This is a version 3 \s-1UUID\s0 which summarizes the \fBOpenPKG\fR
michael@13 167 instance parameters. Currently the values of the following
michael@13 168 particular OpenPKG \s-1RPM\s0 macros are uses as input:
michael@13 169 .Sp
michael@13 170 .Vb 5
michael@13 171 \& %{l_openpkg_release} %{l_prefix}
michael@13 172 \& %{l_susr} %{l_suid} %{l_sgrp} %{l_sgid}
michael@13 173 \& %{l_musr} %{l_muid} %{l_mgrp} %{l_mgid}
michael@13 174 \& %{l_rusr} %{l_ruid} %{l_rgrp} %{l_rgid}
michael@13 175 \& %{l_nusr} %{l_nuid} %{l_ngrp} %{l_ngid}
michael@13 176 .Ve
michael@13 177 .Sp
michael@13 178 The value of this \s-1UUID\s0 can be recalculated deterministically and will
michael@13 179 not chance as long as none of the values of the above macro do not
michael@13 180 change. This \s-1UUID\s0 can be used for detecting OpenPKG release upgrades,
michael@13 181 accidentally changed UIDs or GIDs, etc. Notice that version 3 UUIDs are
michael@13 182 message digests (actually \s-1MD5\s0 based) and so are one-way functions which do
michael@13 183 not allow one to recalculate the input values from the \s-1UUID\s0.
michael@13 184 .ie n .IP "3. \fBOpenPKG Platform\fR (\*(C`UUID_PLATFORM\*(C')" 3
michael@13 185 .el .IP "3. \fBOpenPKG Platform\fR (\f(CW\*(C`UUID_PLATFORM\*(C'\fR)" 3
michael@13 186 .IX Item "3. OpenPKG Platform (UUID_PLATFORM)"
michael@13 187 This is a version 3 \s-1UUID\s0 which summarizes the \fBOpenPKG\fR platform
michael@13 188 parameters. Currently the OpenPKG \s-1RPM\s0 platform id plus the \s-1FQDN\s0 and \s-1IP\s0
michael@13 189 address of the underlying host are used as input. This \s-1UUID\s0 can be used
michael@13 190 for detecting operating system and host changes. Notice that version
michael@13 191 3 UUIDs are message digests (actually \s-1MD5\s0 based) and so are one-way
michael@13 192 functions which do not allow one to recalculate the input values from
michael@13 193 the \s-1UUID\s0.
michael@13 194 .SH "OPTIONS"
michael@13 195 .IX Header "OPTIONS"
michael@13 196 .IP "\fB\-\-verbose\fR" 4
michael@13 197 .IX Item "--verbose"
michael@13 198 Print verbose messages during operation.
michael@13 199 .IP "\fB\-\-multicast\fR" 4
michael@13 200 .IX Item "--multicast"
michael@13 201 Generate a random multicast \s-1MAC\s0 address instead of using the real \s-1IEEE\s0
michael@13 202 802 \s-1MAC\s0 address of the underlying host when generating the version 1
michael@13 203 \&\s-1UUID\s0 \f(CW\*(C`UUID_REGISTRY\*(C'\fR.
michael@13 204 .SH "COMMANDS"
michael@13 205 .IX Header "COMMANDS"
michael@13 206 .IP "\fBreset\fR" 4
michael@13 207 .IX Item "reset"
michael@13 208 This resets the three UUIDs \f(CW\*(C`UUID_REGISTRY\*(C'\fR, \f(CW\*(C`UUID_INSTANCE\*(C'\fR and
michael@13 209 \&\f(CW\*(C`UUID_PLATFORM\*(C'\fR to the \*(L"Nil \s-1UUID\s0\*(R". They are then automatically
michael@13 210 regenerated within one day if already done explicitly afterward with
michael@13 211 "\f(CW\*(C`openpkg uuid update\*(C'\fR".
michael@13 212 .IP "\fBupdate\fR" 4
michael@13 213 .IX Item "update"
michael@13 214 This updates the three UUIDs \f(CW\*(C`UUID_REGISTRY\*(C'\fR, \f(CW\*(C`UUID_INSTANCE\*(C'\fR and
michael@13 215 \&\f(CW\*(C`UUID_PLATFORM\*(C'\fR to the \*(L"Nil \s-1UUID\s0\*(R". \f(CW\*(C`UUID_REGISTRY\*(C'\fR is kept unless it
michael@13 216 is the \*(L"Nil \s-1UUID\s0\*(R" (see "\f(CW\*(C`openpkg uuid reset\*(C'\fR" command above). The UUIDs
michael@13 217 \&\f(CW\*(C`UUID_INSTANCE\*(C'\fR and \f(CW\*(C`UUID_PLATFORM\*(C'\fR are updated only if their input
michael@13 218 values (and this way the resulting UUIDs) have changed. This operation
michael@13 219 is performed daily automatically.
michael@13 220 .IP "\fBinfo\fR" 4
michael@13 221 .IX Item "info"
michael@13 222 This print summary page of identification information, including all
michael@13 223 UUIDs and all of their calculation inputs.
michael@13 224 .SH "FILES"
michael@13 225 .IX Header "FILES"
michael@13 226 The three UUIDs of the \fBOpenPKG\fR instance are stored in the file
michael@13 227 \&\f(CW\*(C`@l_prefix@/etc/openpkg/uuid\*(C'\fR in Bourne-Shell syntax. An example
michael@13 228 content is:
michael@13 229 .PP
michael@13 230 .Vb 3
michael@13 231 \& UUID_REGISTRY="81eca44e-4d18-11d8-a837-0090272ff725"
michael@13 232 \& UUID_INSTANCE="c55a8d2d-31bb-3ae0-9edb-68337af61acc"
michael@13 233 \& UUID_PLATFORM="05ec2532-9e3f-37dc-a7ed-b291c2c463ed"
michael@13 234 .Ve
michael@13 235 .SH "CAVEATS"
michael@13 236 .IX Header "CAVEATS"
michael@13 237 By default and in full compliance with \s-1DCE\s0 1.1 and \s-1ISO/IEC\s0 11578:1996,
michael@13 238 the OpenPKG Registry \s-1UUID\s0 (\f(CW\*(C`UUID_REGISTRY\*(C'\fR) contains the \s-1IEEE\s0 802 \s-1MAC\s0
michael@13 239 address of the underlying host. If this is not acceptable by local
michael@13 240 security policies you can easily at any time generate a new OpenPKG
michael@13 241 Registry \s-1UUID\s0 with a random multicast \s-1MAC\s0 address instead by running:
michael@13 242 .PP
michael@13 243 .Vb 2
michael@13 244 \& $ openpkg uuid reset
michael@13 245 \& $ openpkg uuid --multicast update
michael@13 246 .Ve
michael@13 247 .SH "SEE ALSO"
michael@13 248 .IX Header "SEE ALSO"
michael@13 249 \&\fB\s-1OSSP\s0 uuid\fR <http://www.ossp.org/pkg/lib/uuid/>.
michael@13 250 .SH "HISTORY"
michael@13 251 .IX Header "HISTORY"
michael@13 252 The \fBopenpkg uuid\fR command first appeared in \fBOpenPKG 2.0\fR.

mercurial