1 0 stevel #!/bin/sh 2 0 stevel # 3 0 stevel # CDDL HEADER START 4 0 stevel # 5 0 stevel # The contents of this file are subject to the terms of the 6 3147 xc151355 # Common Development and Distribution License (the "License"). 7 3147 xc151355 # You may not use this file except in compliance with the License. 8 0 stevel # 9 0 stevel # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 0 stevel # or http://www.opensolaris.org/os/licensing. 11 0 stevel # See the License for the specific language governing permissions 12 0 stevel # and limitations under the License. 13 0 stevel # 14 0 stevel # When distributing Covered Code, include this CDDL HEADER in each 15 0 stevel # file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 0 stevel # If applicable, add the following below this CDDL HEADER, with the 17 0 stevel # fields enclosed by brackets "[]" replaced with your own identifying 18 0 stevel # information: Portions Copyright [yyyy] [name of copyright owner] 19 0 stevel # 20 0 stevel # CDDL HEADER END 21 0 stevel # 22 8897 Renaud # Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23 0 stevel # Use is subject to license terms. 24 0 stevel # 25 0 stevel 26 0 stevel PATH="/usr/bin:/usr/sbin:${PATH}" 27 0 stevel export PATH 28 8897 Renaud 29 8897 Renaud TEMPF="/tmp/d.$$" 30 0 stevel 31 0 stevel while read src dest 32 0 stevel do 33 0 stevel if [ ! -f $dest ] ; then 34 0 stevel cp $src $dest 35 0 stevel else 36 0 stevel # 37 0 stevel # 2.1 version of this file had a trailing blank 38 0 stevel # in the nobody entry. Remove it. 39 0 stevel # 40 0 stevel # 2.6 & earlier versions had an smtp entry; remove it. 41 0 stevel # 42 0 stevel # The NFS nobody users get better GECOS entries. 43 0 stevel sed -e 's/^\(nobody:.*:\) $/\1/' \ 44 0 stevel -e '/^smtp:/d' \ 45 0 stevel -e '/^nobody:/s/:Nobody:/:NFS Anonymous Access User:/' \ 46 0 stevel -e '/^nobody4:/s/:SunOS\ 4\.x\ Nobody:/:SunOS 4.x NFS Anonymous Access User:/;' \ 47 8897 Renaud $dest > $TEMPF 48 8897 Renaud cp $TEMPF $dest 49 8897 Renaud rm -f $TEMPF 50 0 stevel 51 0 stevel # 52 0 stevel # s10 is changing root's group back to 0: 53 0 stevel # 54 0 stevel sed -e 's/^root:\([^:]*\):0:1:/root:\1:0:0:/' \ 55 8897 Renaud $dest > $TEMPF 56 8897 Renaud cp $TEMPF $dest 57 8897 Renaud rm -f $TEMPF 58 0 stevel 59 0 stevel # 60 0 stevel # Add the 'nobody' user from 4.x so that people don't 61 0 stevel # assign it to a regular user and confuse themselves 62 0 stevel # 63 0 stevel NOBODY4_LINE="nobody4:x:65534:65534:SunOS 4.x NFS Anoymous Access User:/:" 64 9261 Darren if grep "^nobody4:" $dest >/dev/null 2>&1; then 65 0 stevel : 66 0 stevel else 67 8897 Renaud sed '/^noaccess:x/ a\ 68 8897 Renaud '"$NOBODY4_LINE"'' $dest > $TEMPF 69 8897 Renaud mv -f $TEMPF $dest 70 0 stevel fi 71 0 stevel 72 0 stevel # 73 0 stevel # Add the 'smmsp' user for sendmail 8.12 74 0 stevel # 75 0 stevel SMMSP_LIN="smmsp:x:25:25:SendMail Message Submission Program:/:" 76 9261 Darren if grep "$SMMSP_LIN" $dest >/dev/null 2>&1; then 77 0 stevel : 78 0 stevel else 79 8897 Renaud sed '/^nobody4:x/ a\ 80 8897 Renaud '"$SMMSP_LIN"'' $dest > $TEMPF 81 8897 Renaud mv -f $TEMPF $dest 82 0 stevel fi 83 0 stevel 84 0 stevel # 85 0 stevel # Add the 'gdm' user if it doesn't exist. 86 0 stevel # 87 9261 Darren GDM_LINE="gdm:x:50:50:GDM Reserved UID:/var/lib/gdm:" 88 9261 Darren OLD_GDM_LINE="gdm:x:50:50:GDM Reserved UID:/:" 89 0 stevel cur_name=`awk -F: '$3 == 50 { print $1 }' $dest` 90 0 stevel if [ ! -z "$cur_name" -a "$cur_name" != "gdm" ]; then 91 0 stevel echo "ERROR: Reserved UID 50 already assigned" \ 92 0 stevel "to '$cur_name'" >> /tmp/CLEANUP 93 9261 Darren elif grep "$GDM_LINE" $dest >/dev/null 2>&1; then 94 0 stevel : 95 9261 Darren elif grep "$OLD_GDM_LINE" $dest > /dev/null 2>&1; then 96 9261 Darren sed '/^gdm:/s/:\/:/:\/var\/lib\/gdm:/' $dest > $TEMPF 97 9261 Darren mv -f $TEMPF $dest 98 0 stevel else 99 8897 Renaud sed '/^listen:x/ a\ 100 8897 Renaud '"$GDM_LINE"'' $dest > $TEMPF 101 8897 Renaud mv -f $TEMPF $dest 102 0 stevel fi 103 0 stevel 104 0 stevel # 105 0 stevel # Add the 'webservd' user if it doesn't exist. 106 0 stevel # 107 0 stevel WEBSERVD_LIN="webservd:x:80:80:WebServer Reserved UID:/:" 108 0 stevel cur_name=`awk -F: '$3 == 80 { print $1 }' $dest` 109 0 stevel if [ ! -z "$cur_name" -a "$cur_name" != "webservd" ]; then 110 0 stevel echo "ERROR: Reserved UID 80 already assigned" \ 111 0 stevel "to '$cur_name'" >> /tmp/CLEANUP 112 9261 Darren elif grep "$WEBSERVD_LIN" $dest > /dev/null 2>&1; then 113 0 stevel : 114 0 stevel else 115 8897 Renaud sed '/^gdm:x/ a\ 116 8897 Renaud '"$WEBSERVD_LIN"'' $dest > $TEMPF 117 8897 Renaud mv -f $TEMPF $dest 118 0 stevel fi 119 3105 jg97986 120 3105 jg97986 # 121 3105 jg97986 # Add the 'postgres' user if it doesn't exist. 122 3105 jg97986 # 123 3105 jg97986 POSTGRES_LIN="postgres:x:90:90:PostgreSQL Reserved UID:/:/usr/bin/pfksh" 124 3105 jg97986 cur_name=`awk -F: '$3 == 90 { print $1 }' $dest` 125 3105 jg97986 cur_id=`awk -F: '$1 == "postgres" { print $3 }' $dest` 126 3105 jg97986 if [ ! -z "$cur_name" -a "$cur_name" != "postgres" ]; then 127 3105 jg97986 echo "ERROR: Reserved UID 90 already assigned" \ 128 3105 jg97986 "to '$cur_name'" >> /tmp/CLEANUP 129 3105 jg97986 elif [ ! -z "$cur_id" -a "$cur_id" != "90" ]; then 130 3105 jg97986 echo "NOTE: postgres username already assigned" \ 131 3105 jg97986 "to id '$cur_id'" >> /tmp/CLEANUP 132 9261 Darren elif grep "$POSTGRES_LIN" $dest > /dev/null 2>&1; then 133 3105 jg97986 : 134 3105 jg97986 else 135 8897 Renaud sed '/^webservd:x/ a\ 136 8897 Renaud '"$POSTGRES_LIN"'' $dest > $TEMPF 137 8897 Renaud mv -f $TEMPF $dest 138 3105 jg97986 fi 139 3147 xc151355 140 6784 johnlev # 141 5983 sm156471 # Add the 'mysql' user if it doesn't exist. 142 5983 sm156471 # 143 5983 sm156471 MYSQL_LIN="mysql:x:70:70:MySQL Reserved UID:/:" 144 5983 sm156471 cur_name=`awk -F: '$3 == 70 { print $1 }' $dest` 145 5983 sm156471 cur_id=`awk -F: '$1 == "mysql" { print $3 }' $dest` 146 5983 sm156471 if [ ! -z "$cur_name" -a "$cur_name" != "mysql" ]; then 147 5983 sm156471 echo "ERROR: Reserved UID 70 already assigned" \ 148 5983 sm156471 "to '$cur_name'" >> /tmp/CLEANUP 149 5983 sm156471 elif [ ! -z "$cur_id" -a "$cur_id" != "70" ]; then 150 5983 sm156471 echo "NOTE: mysql username already assigned" \ 151 5983 sm156471 "to id '$cur_id'" >> /tmp/CLEANUP 152 9261 Darren elif grep "$MYSQL_LIN" $dest > /dev/null 2>&1; then 153 5983 sm156471 : 154 5983 sm156471 else 155 8897 Renaud sed '/^postgres:x/ a\ 156 8897 Renaud '"$MYSQL_LIN"'' $dest > $TEMPF 157 8897 Renaud mv -f $TEMPF $dest 158 5983 sm156471 fi 159 5983 sm156471 160 3147 xc151355 # 161 5649 pschow # Add the 'svctag' user if it doesn't exist. 162 5649 pschow # 163 5649 pschow SVCTAG_LIN="svctag:x:95:12:Service Tag UID:/:" 164 5649 pschow cur_name=`awk -F: '$3 == 95 { print $1 }' $dest` 165 5649 pschow cur_id=`awk -F: '$1 == "svctag" { print $3 }' $dest` 166 5649 pschow if [ ! -z "$cur_name" -a "$cur_name" != "svctag" ]; then 167 5649 pschow echo "ERROR: Reserved UID 95 already assigned" \ 168 5649 pschow "to '$cur_name'" >> /tmp/CLEANUP 169 5649 pschow elif [ ! -z "$cur_id" -a "$cur_id" != "95" ]; then 170 5649 pschow echo "NOTE: svctag username already assigned" \ 171 5649 pschow "to id '$cur_id'" >> /tmp/CLEANUP 172 9261 Darren elif grep "$SVCTAG_LIN" $dest > /dev/null 2>&1; then 173 5649 pschow : 174 5649 pschow else 175 8897 Renaud sed '/^postgres:x/ a\ 176 8897 Renaud '"$SVCTAG_LIN"'' $dest > $TEMPF 177 8897 Renaud mv -f $TEMPF $dest 178 5649 pschow fi 179 5649 pschow 180 5649 pschow # 181 3147 xc151355 # Add the 'dladm' user if it doesn't exist. 182 3147 xc151355 # 183 3147 xc151355 DLADM_LIN="dladm:x:15:3:Datalink Admin:/:" 184 3147 xc151355 cur_name=`awk -F: '$3 == 15 { print $1 }' $dest` 185 3147 xc151355 if [ ! -z "$cur_name" -a "$cur_name" != "dladm" ]; then 186 3147 xc151355 echo "ERROR: Reserved UID 15 already assigned" \ 187 3147 xc151355 "to '$cur_name'" >> /tmp/CLEANUP 188 9261 Darren elif grep "$DLADM_LIN" $dest > /dev/null 2>&1; then 189 3147 xc151355 : 190 3147 xc151355 else 191 8897 Renaud sed '/^nuucp:x/ a\ 192 8897 Renaud '"$DLADM_LIN"'' $dest > $TEMPF 193 8897 Renaud mv -f $TEMPF $dest 194 3147 xc151355 fi 195 6784 johnlev 196 6784 johnlev # 197 6784 johnlev # Add the 'xvm' user if it doesn't exist. 198 6784 johnlev # 199 6784 johnlev XVM_LIN="xvm:x:60:60:xVM User:/:" 200 6784 johnlev cur_name=`awk -F: '$3 == 60 { print $1 }' $dest` 201 6784 johnlev cur_id=`awk -F: '$1 == "xvm" { print $3 }' $dest` 202 6784 johnlev if [ ! -z "$cur_name" -a "$cur_name" != "xvm" ]; then 203 6784 johnlev echo "ERROR: Reserved UID 60 already assigned" \ 204 6784 johnlev "to '$cur_name'" >> /tmp/CLEANUP 205 6784 johnlev elif [ ! -z "$cur_id" -a "$cur_id" != "60" ]; then 206 6784 johnlev echo "NOTE: xvm username already assigned" \ 207 6784 johnlev "to id '$cur_id'" >> /tmp/CLEANUP 208 9261 Darren elif grep "$XVM_LIN" $dest > /dev/null 2>&1; then 209 6784 johnlev : 210 6784 johnlev else 211 8897 Renaud sed '/^gdm:x/ a\ 212 8897 Renaud '"$XVM_LIN"'' $dest > $TEMPF 213 8897 Renaud mv -f $TEMPF $dest 214 6784 johnlev fi 215 7721 Doug # 216 7721 Doug # Add the 'openldap' user if it doesn't exist. 217 7721 Doug # 218 7721 Doug OPENLDAP_LIN="openldap:x:75:75:OpenLDAP User:/:" 219 7721 Doug cur_name=`awk -F: '$3 == 75 { print $1 }' $dest` 220 7721 Doug cur_id=`awk -F: '$1 == "openldap" { print $3 }' $dest` 221 7721 Doug if [ ! -z "$cur_name" -a "$cur_name" != "openldap" ]; then 222 7721 Doug echo "ERROR: Reserved UID 75 already assigned" \ 223 7721 Doug "to '$cur_name'" >> /tmp/CLEANUP 224 7721 Doug elif [ ! -z "$cur_id" -a "$cur_id" != "75" ]; then 225 7721 Doug echo "NOTE: openldap username already assigned" \ 226 7721 Doug "to id '$cur_id'" >> /tmp/CLEANUP 227 9261 Darren elif grep "$OPENLDAP_LIN" $dest > /dev/null 2>&1; then 228 7721 Doug : 229 7721 Doug else 230 8897 Renaud sed '/^mysql:x/ a\ 231 8897 Renaud '"$OPENLDAP_LIN"'' $dest > $TEMPF 232 8897 Renaud mv -f $TEMPF $dest 233 7721 Doug fi 234 6784 johnlev 235 7681 tim # 236 7681 tim # Add the 'zfssnap' user if it doesn't exist. 237 7681 tim # 238 7681 tim ZSNAP_LIN="zfssnap:x:51:12:ZFS Automatic Snapshots Reserved UID:/:/usr/bin/pfsh" 239 7681 tim cur_name=`awk -F: '$3 == 51 { print $1 }' $dest` 240 7681 tim cur_id=`awk -F: '$1 == "zfssnap" { print $3 }' $dest` 241 7681 tim if [ ! -z "$cur_name" -a "$cur_name" != "zfssnap" ]; then 242 7681 tim echo "ERROR: Reserved UID 51 already assigned" \ 243 7681 tim "to '$cur_name'" >> /tmp/CLEANUP 244 7681 tim elif [ ! -z "$cur_id" -a "$cur_id" != "51" ]; then 245 7681 tim echo "NOTE: zfssnap username already assigned" \ 246 7681 tim "to id '$cur_id'" >> /tmp/CLEANUP 247 9261 Darren elif grep "$ZSNAP_LIN" $dest > /dev/null 2>&1; then 248 7681 tim : 249 7681 tim else 250 8897 Renaud sed '/^gdm:x/ a\ 251 8897 Renaud '"$ZSNAP_LIN"'' $dest > $TEMPF 252 8897 Renaud mv -f $TEMPF $dest 253 7681 tim fi 254 9890 Darren 255 9890 Darren # 256 9890 Darren # Add the 'upnp' user if it doesn't exist. 257 9890 Darren # 258 9890 Darren UPNP_LIN="upnp:x:52:52:UPnP Server Reserved UID:/var/coherence:/bin/ksh" 259 9890 Darren cur_name=`awk -F: '$3 == 52 { print $1 }' $dest` 260 9890 Darren cur_id=`awk -F: '$1 == "upnp" { print $3 }' $dest` 261 9890 Darren if [ ! -z "$cur_name" -a "$cur_name" != "upnp" ]; then 262 9890 Darren echo "ERROR: Reserved UID 52 already assigned" \ 263 9890 Darren "to '$cur_name'" >> /tmp/CLEANUP 264 9890 Darren elif [ ! -z "$cur_id" -a "$cur_id" != "52" ]; then 265 9890 Darren echo "NOTE: upnp username already assigned" \ 266 9890 Darren "to id '$cur_id'" >> /tmp/CLEANUP 267 9890 Darren elif grep "$UPNP_LIN" $dest > /dev/null 2>&1; then 268 9890 Darren : 269 9890 Darren else 270 9890 Darren sed '/^zfssnap:x/ a\ 271 9890 Darren '"$UPNP_LIN"'' $dest > $TEMPF 272 9890 Darren mv -f $TEMPF $dest 273 9890 Darren fi 274 0 stevel fi 275 0 stevel done 276 0 stevel 277 0 stevel exit 0 278