# # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # PATH=/usr/bin:/usr/sbin:${PATH} export PATH EXIT=0 AUTH_ATTR=$BASEDIR/etc/security/auth_attr USER_ATTR=$BASEDIR/etc/user_attr GREP=/usr/bin/grep CAT=/usr/bin/cat ED=/usr/bin/ed not_installed() { driver=$1 grep "^${driver} " ${BASEDIR}/etc/name_to_major > /dev/null 2>&1 if [ "$?" -eq 0 ]; then return 1 else return 0 fi } # # Remove LDoms vntsd authorization entries from etc/security/auth_attr, which # were added during installation. These define authorizations used by LDoms # vntsd daemon. # remove_auth_entries() { # # Remove entries from auth_attr file, if needed # $GREP '^solaris.vntsd.:' ${AUTH_ATTR} >/dev/null 2>&1 if [ $? -eq 0 ] ; then $ED -s ${AUTH_ATTR} <<- EOF > /dev/null 2>&1 g/svc-vntsd/d g/^solaris.vntsd.:/d g/^solaris.vntsd.grant/d g/^solaris.vntsd.consoles/d w q EOF fi } # # Delete entries that were added by svc-vntsd to etc/user_attr file. # delete_vntsd_entry() { vntsd_entry=$1 $GREP ${vntsd_entry} ${USER_ATTR} >/dev/null 2>&1 if [ $? -eq 0 ] ; then $ED -s ${USER_ATTR} <<- EOF > /dev/null 2>&1 g/${vntsd_entry}/d w q EOF fi } # # Remove vntsd attributes from etc/user_attr file. # remove_vntsd_attr() { if [ $# -eq 1 ] ; then replacement="" else replacement=$2 fi vntsd_attr=$1 $GREP ${vntsd_attr} ${USER_ATTR} >/dev/null 2>&1 if [ $? -eq 0 ] ; then $ED -s ${USER_ATTR} <<- EOF > /dev/null 2>&1 g/${vntsd_attr}/s/${vntsd_attr}/${replacement}/g w q EOF fi } # # Remove LDoms vntsd user/role entry from /etc/user_attr, which were added # during installation. This defines the user/role used by useradd/roleadd. # remove_user_entries() { # # Delete entries that may be added during installation. # delete_vntsd_entry 'svc-vntsd' delete_vntsd_entry '^root::::type=normal;auths=solaris.vntsd.grant;lock_after_retries=0$' # # Remove vntsd attributes for root user # Possible entries are: # remove_vntsd_attr ",solaris.vntsd.grant$" remove_vntsd_attr ",solaris.vntsd.grant;" ";" remove_vntsd_attr "solaris.vntsd.grant," remove_vntsd_attr "auths=solaris.vntsd.grant$" remove_vntsd_attr "auths=solaris.vntsd.grant;" } # Main remove_auth_entries remove_user_entries # # Unload and remove drivers # not_installed cnex || rem_drv -b "${BASEDIR}" cnex || EXIT=1 not_installed drctl || rem_drv -b "${BASEDIR}" drctl || EXIT=1 not_installed vlds || rem_drv -b "${BASEDIR}" vlds || EXIT=1 not_installed vcc || rem_drv -b "${BASEDIR}" vcc || EXIT=1 not_installed vdc || rem_drv -b "${BASEDIR}" vdc || EXIT=1 not_installed vds || rem_drv -b "${BASEDIR}" vds || EXIT=1 not_installed vldc || rem_drv -b "${BASEDIR}" vldc || EXIT=1 not_installed vnet || rem_drv -b "${BASEDIR}" vnet || EXIT=1 not_installed vsw || rem_drv -b "${BASEDIR}" vsw || EXIT=1 exit ${EXIT}