Home | History | Annotate | Download | only in common_files
      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