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 5983 sm156471 # Common Development and Distribution License (the "License"). 7 5983 sm156471 # 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 8897 Renaud export PATH 28 8897 Renaud 29 8897 Renaud TEMPF="/tmp/g.$$" 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 # Strip off any leading "/a" 38 0 stevel # 39 0 stevel dest_file=`echo $dest | sed "s=^/a/=/="` 40 0 stevel 41 0 stevel # 42 0 stevel # Add the sysadmin group (gid 14) to support admintool 43 0 stevel # 44 9890 Darren grep '^sysadmin:.*:14:.*' $dest >/dev/null 2>&1 45 0 stevel if [ $? = 0 ] ; then 46 0 stevel /usr/bin/true 47 9890 Darren elif grep '^sysadmin:' $dest >/dev/null 2>&1; then 48 0 stevel cur_name="sysadmin" 49 0 stevel echo "SYSADMIN_NOT_14 $dest_file none" >> /tmp/CLEANUP 50 0 stevel echo "sysadmin::14:" >> $dest 51 0 stevel 52 9890 Darren elif grep ':14:' $dest >/dev/null 2>&1; then 53 0 stevel cur_name=`grep ':14:' $dest | awk -F: '{print $1}'` 54 0 stevel echo "GROUP14_IN_USE $dest_file none" >> /tmp/CLEANUP 55 0 stevel echo "sysadmin::14:" >> $dest 56 0 stevel 57 0 stevel else # add the group 58 0 stevel echo "sysadmin::14:" >> $dest 59 0 stevel fi 60 0 stevel 61 0 stevel # 62 0 stevel # Add the 'nogroup' group from 4.x so that people don't 63 0 stevel # assign it to a regular user and confuse themselves 64 0 stevel # 65 0 stevel NOGROUP_LINE="nogroup::65534:" 66 9890 Darren if grep "$NOGROUP_LINE" $dest >/dev/null 2>&1; then 67 0 stevel : 68 0 stevel else 69 8897 Renaud sed '/^noaccess::60002:/ a\ 70 8897 Renaud '"$NOGROUP_LINE"'' $dest > $TEMPF 71 8897 Renaud mv -f $TEMPF $dest 72 8897 Renaud 73 0 stevel fi 74 0 stevel 75 0 stevel # Remove redundant /etc/group entries that overlap with 76 0 stevel # primary groups from /etc/passwd 77 0 stevel sed ' 78 0 stevel /^root:/s/\([:,]\)root,/\1/; 79 0 stevel /^root:/s/,root$//; 80 0 stevel /^root:/s/:root$/:/; 81 0 stevel /^bin:/s/\([:,]\)bin,/\1/; 82 0 stevel /^bin:/s/,bin$//; 83 0 stevel /^bin:/s/:bin$/:/; 84 0 stevel /^sys:/s/\([:,]\)sys,/\1/; 85 0 stevel /^sys:/s/,sys$//; 86 0 stevel /^sys:/s/:sys$/:/; 87 0 stevel /^adm:/s/\([:,]\)adm,/\1/; 88 0 stevel /^adm:/s/,adm$//; 89 0 stevel /^adm:/s/:adm$/:/; 90 0 stevel /^tty:/s/\([:,]\)tty,/\1/; 91 0 stevel /^tty:/s/,tty$//; 92 0 stevel /^tty:/s/:tty$/:/; 93 0 stevel /^uucp:/s/\([:,]\)uucp,/\1/; 94 0 stevel /^uucp:/s/,uucp$//; 95 0 stevel /^uucp:/s/:uucp$/:/; 96 0 stevel /^nuucp:/s/\([:,]\)nuucp,/\1/; 97 0 stevel /^nuucp:/s/,nuucp$//; 98 0 stevel /^nuucp:/s/:nuucp$/:/; 99 0 stevel /^daemon:/s/\([:,]\)daemon,/\1/; 100 0 stevel /^daemon:/s/,daemon$//; 101 0 stevel /^daemon:/s/:daemon$/:/; 102 0 stevel /^smmsp:/s/\([:,]\)smmsp,/\1/; 103 0 stevel /^smmsp:/s/,smmsp$//; 104 0 stevel /^smmsp:/s/:smmsp$/:/; 105 0 stevel /^lp:/s/\([:,]\)lp,/\1/; 106 0 stevel /^lp:/s/,lp$//; 107 8897 Renaud /^lp:/s/:lp$/:/' $dest > $TEMPF && 108 8897 Renaud cp $TEMPF $dest 109 8897 Renaud rm -f $TEMPF 110 0 stevel 111 0 stevel #add 'root' to user-list of group1 112 0 stevel # line 1,2: skip any line with root in the user field 113 0 stevel # line 3: users already in list, add "root," 114 0 stevel # line 4: no users in list, add "root" 115 0 stevel 116 0 stevel sed ' 117 0 stevel /[:,]root,/b 118 0 stevel /[:,]root$/b 119 0 stevel s/:1:\([^:][^:]*\)$/:1:root,\1/; 120 0 stevel s/:1:$/:1:root/; 121 8897 Renaud ' $dest > $TEMPF && 122 0 stevel 123 8897 Renaud cp $TEMPF $dest 124 8897 Renaud rm -f $TEMPF 125 0 stevel 126 0 stevel # 127 0 stevel # Add the 'smmsp' group for sendmail 8.12 128 0 stevel # 129 0 stevel SMMSPGROUP_LINE="smmsp::25:" 130 9890 Darren if grep "$SMMSPGROUP_LINE" $dest >/dev/null 2>&1; then 131 0 stevel : 132 0 stevel else 133 8897 Renaud sed '/^nogroup::65534:/ a\ 134 8897 Renaud '"$SMMSPGROUP_LINE"'' $dest > $TEMPF 135 8897 Renaud mv -f $TEMPF $dest 136 0 stevel fi 137 0 stevel # 138 0 stevel # Add the 'gdm' group if it doesn't already exist. 139 0 stevel # 140 0 stevel GDMGROUP_LINE="gdm::50:" 141 0 stevel cur_name=`awk -F: '$3 == 50 {print $1}' $dest` 142 0 stevel if [ ! -z "$cur_name" -a "$cur_name" != "gdm" ]; then 143 0 stevel echo "ERROR: Reserved GID 50 already assigned" \ 144 0 stevel "to '$cur_name'" >> /tmp/CLEANUP 145 9890 Darren elif grep "$GDMGROUP_LINE" $dest >/dev/null 2>&1; then 146 0 stevel : 147 0 stevel else 148 8897 Renaud sed '/^smmsp::25:/ a\ 149 8897 Renaud '"$GDMGROUP_LINE"'' $dest > $TEMPF 150 9890 Darren mv -f $TEMPF $dest 151 9890 Darren fi 152 9890 Darren # 153 9890 Darren # Add the 'upnp' group if it doesn't already exist. 154 9890 Darren # 155 9890 Darren UPNPGROUP_LINE="upnp::52:" 156 9890 Darren cur_name=`awk -F: '$3 == 52 {print $1}' $dest` 157 9890 Darren if [ ! -z "$cur_name" -a "$cur_name" != "upnp" ]; then 158 9890 Darren echo "ERROR: Reserved GID 52 already assigned" \ 159 9890 Darren "to '$cur_name'" >> /tmp/CLEANUP 160 9890 Darren elif grep "$UPNPGROUP_LINE" $dest >/dev/null 2>&1; then 161 9890 Darren : 162 9890 Darren else 163 9890 Darren sed '/^gdm::50:/ a\ 164 9890 Darren '"$UPNPGROUP_LINE"'' $dest > $TEMPF 165 8897 Renaud mv -f $TEMPF $dest 166 0 stevel fi 167 0 stevel # 168 0 stevel # Add the 'webservd' group if it doesn't already exist. 169 0 stevel # 170 0 stevel WEBSERVDGROUP_LINE="webservd::80:" 171 0 stevel cur_name=`awk -F: '$3 == 80 {print $1}' $dest` 172 0 stevel if [ ! -z "$cur_name" -a "$cur_name" != "webservd" ]; then 173 0 stevel echo "ERROR: Reserved GID 80 already assigned" \ 174 0 stevel "to '$cur_name'" >> /tmp/CLEANUP 175 9890 Darren elif grep "$WEBSERVDGROUP_LINE" $dest >/dev/null 2>&1; then 176 0 stevel : 177 0 stevel else 178 9890 Darren sed '/^upnp::50:/ a\ 179 8897 Renaud '"$WEBSERVDGROUP_LINE"'' $dest > $TEMPF 180 8897 Renaud mv -f $TEMPF $dest 181 0 stevel fi 182 3105 jg97986 183 3105 jg97986 # 184 3105 jg97986 # Add the 'postgres' group if it doesn't already exist. 185 3105 jg97986 # 186 3105 jg97986 POSTGRESGROUP_LINE="postgres::90:" 187 3105 jg97986 cur_name=`awk -F: '$3 == 90 {print $1}' $dest` 188 3105 jg97986 cur_id=`awk -F: '$1 == "postgres" {print $3}' $dest` 189 3105 jg97986 if [ ! -z "$cur_name" -a "$cur_name" != "postgres" ]; then 190 3105 jg97986 echo "ERROR: Reserved GID 90 already assigned" \ 191 3105 jg97986 "to '$cur_name'" >> /tmp/CLEANUP 192 3105 jg97986 elif [ ! -z "$cur_id" -a "$cur_id" != "90" ]; then 193 3105 jg97986 echo "NOTE: postgres group already assigned" \ 194 3105 jg97986 "to id '$cur_id'" >> /tmp/CLEANUP 195 9890 Darren elif grep "$POSTGRESGROUP_LINE" $dest >/dev/null 2>&1; then 196 3105 jg97986 : 197 3105 jg97986 else 198 8897 Renaud sed '/^webservd::80:/ a\ 199 8897 Renaud '"$POSTGRESGROUP_LINE"'' $dest > $TEMPF 200 8897 Renaud mv -f $TEMPF $dest 201 3105 jg97986 fi 202 5983 sm156471 # 203 5983 sm156471 # Add the 'mysql' group if it doesn't already exist. 204 5983 sm156471 # 205 5983 sm156471 MYSQLGROUP_LINE="mysql::70:" 206 5983 sm156471 cur_name=`awk -F: '$3 == 70 {print $1}' $dest` 207 6170 sm156471 cur_id=`awk -F: '$1 == "mysql" {print $3}' $dest` 208 5983 sm156471 if [ ! -z "$cur_name" -a "$cur_name" != "mysql" ]; then 209 5983 sm156471 echo "ERROR: Reserved GID 70 already assigned" \ 210 5983 sm156471 "to '$cur_name'" >> /tmp/CLEANUP 211 5983 sm156471 elif [ ! -z "$cur_id" -a "$cur_id" != "70" ]; then 212 5983 sm156471 echo "NOTE: mysql group already assigned" \ 213 5983 sm156471 "to id '$cur_id'" >> /tmp/CLEANUP 214 9890 Darren elif grep "$MYSQLGROUP_LINE" $dest >/dev/null 2>&1; then 215 5983 sm156471 : 216 5983 sm156471 else 217 8897 Renaud sed '/^postgres::90:/ a\ 218 8897 Renaud '"$MYSQLGROUP_LINE"'' $dest > $TEMPF 219 8897 Renaud mv -f $TEMPF $dest 220 5983 sm156471 fi 221 5983 sm156471 # 222 6315 dduvall # Add the 'games' group if it doesn't already exist. 223 6315 dduvall # 224 6315 dduvall GAMESGROUP_LINE="games::20:" 225 6315 dduvall cur_name=`awk -F: '$3 == 20 {print $1}' $dest` 226 6315 dduvall cur_id=`awk -F: '$1 == "games" {print $3}' $dest` 227 6315 dduvall if [ ! -z "$cur_name" -a "$cur_name" != "games" ]; then 228 6315 dduvall echo "ERROR: Reserved GID 20 already assigned" \ 229 6315 dduvall "to '$cur_name'" >> /tmp/CLEANUP 230 6315 dduvall elif [ ! -z "$cur_id" -a "$cur_id" != "20" ]; then 231 6315 dduvall echo "NOTE: games group already assigned" \ 232 6315 dduvall "to id '$cur_id'" >> /tmp/CLEANUP 233 9890 Darren elif grep "$GAMESGROUP_LINE" $dest >/dev/null 2>&1; then 234 6315 dduvall : 235 6315 dduvall else 236 8897 Renaud sed '/^smmsp::25:/ a\ 237 8897 Renaud '"$GAMESGROUP_LINE"'' $dest > $TEMPF 238 8897 Renaud mv -f $TEMPF $dest 239 6315 dduvall fi 240 6784 johnlev # 241 6784 johnlev # Add the 'xvm' group if it doesn't already exist. 242 6784 johnlev # 243 6784 johnlev XVMGROUP_LINE="xvm::60:" 244 6784 johnlev cur_name=`awk -F: '$3 == 60 {print $1}' $dest` 245 6784 johnlev cur_id=`awk -F: '$1 == "xvm" {print $3}' $dest` 246 6784 johnlev if [ ! -z "$cur_name" -a "$cur_name" != "xvm" ]; then 247 6784 johnlev echo "ERROR: Reserved GID 60 already assigned" \ 248 6784 johnlev "to '$cur_name'" >> /tmp/CLEANUP 249 6784 johnlev elif [ ! -z "$cur_id" -a "$cur_id" != "60" ]; then 250 6784 johnlev echo "NOTE: xvm group already assigned" \ 251 6784 johnlev "to id '$cur_id'" >> /tmp/CLEANUP 252 9890 Darren elif grep "$XVMGROUP_LINE" $dest >/dev/null 2>&1; then 253 6784 johnlev : 254 6784 johnlev else 255 8897 Renaud sed '/^mysql::70:/ a\ 256 8897 Renaud '"$XVMGROUP_LINE"'' $dest > $TEMPF 257 8897 Renaud mv -f $TEMPF $dest 258 6784 johnlev fi 259 7647 Jim # 260 7647 Jim # Add the 'slocate' group if it doesn't already exist. 261 7647 Jim # 262 7647 Jim SLOCATEGROUP_LINE="slocate::95:" 263 7647 Jim cur_name=`awk -F: '$3 == 95 {print $1}' $dest` 264 7647 Jim cur_id=`awk -F: '$1 == "slocate" {print $3}' $dest` 265 7647 Jim if [ ! -z "$cur_name" -a "$cur_name" != "slocate" ]; then 266 7647 Jim echo "ERROR: Reserved GID 95 already assigned" \ 267 7647 Jim "to '$cur_name'" >> /tmp/CLEANUP 268 7647 Jim elif [ ! -z "$cur_id" -a "$cur_id" != "95" ]; then 269 7647 Jim echo "NOTE: slocate group already assigned" \ 270 7647 Jim "to id '$cur_id'" >> /tmp/CLEANUP 271 9890 Darren elif grep "$SLOCATEGROUP_LINE" $dest >/dev/null 2>&1; then 272 7647 Jim : 273 7647 Jim else 274 8897 Renaud sed '/^postgres::90:/ a\ 275 8897 Renaud '"$SLOCATEGROUP_LINE"'' $dest > $TEMPF 276 8897 Renaud mv -f $TEMPF $dest 277 7647 Jim fi 278 7721 Doug # 279 7721 Doug # Add the 'openldap' group if it doesn't already exist. 280 7721 Doug # 281 7721 Doug OPENLDAPGROUP_LINE="openldap::75:" 282 7721 Doug cur_name=`awk -F: '$3 == 75 {print $1}' $dest` 283 7721 Doug cur_id=`awk -F: '$1 == "openldap" {print $3}' $dest` 284 7721 Doug if [ ! -z "$cur_name" -a "$cur_name" != "openldap" ]; then 285 7721 Doug echo "ERROR: Reserved GID 75 already assigned" \ 286 7721 Doug "to '$cur_name'" >> /tmp/CLEANUP 287 7721 Doug elif [ ! -z "$cur_id" -a "$cur_id" != "75" ]; then 288 7721 Doug echo "NOTE: openldap group already assigned" \ 289 7721 Doug "to id '$cur_id'" >> /tmp/CLEANUP 290 9890 Darren elif grep "$OPENLDAPGROUP_LINE" $dest >/dev/null 2>&1; then 291 7721 Doug : 292 7721 Doug else 293 8897 Renaud sed '/^mysql::70:/ a\ 294 8897 Renaud '"$OPENLDAPGROUP_LINE"'' $dest > $TEMPF 295 8897 Renaud mv -f $TEMPF $dest 296 7721 Doug fi 297 0 stevel fi 298 0 stevel done 299 0 stevel exit 0 300