28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# Use is subject to license terms.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# CDDL HEADER START
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# The contents of this file are subject to the terms of the
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# Common Development and Distribution License (the "License").
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# You may not use this file except in compliance with the License.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# See the License for the specific language governing permissions
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# and limitations under the License.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# When distributing Covered Code, include this CDDL HEADER in each
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# If applicable, add the following below this CDDL HEADER, with the
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# fields enclosed by brackets "[]" replaced with your own identifying
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# information: Portions Copyright [yyyy] [name of copyright owner]
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# CDDL HEADER END
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# Start script for vntsd
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# For modifying parameters passed to vntsd, do not edit
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# this script. Instead use svccfg(1m) to modify the SMF
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# repository. For example:
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# svc:> select ldoms/vntsd
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# svc:/ldoms/vntsd> setprop vntsd/vcc_device = "virtual-console-concentrator@1"
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# svc:/ldoms/vntsd> setprop vntsd/listen_addr = "192.168.1.1"
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna# svc:/ldoms/vntsd> setprop vntsd/authorization="true"
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo# svc:/ldoms/vntsd> exit
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna# Add LDoms vntsd authorization entries to etc/security/auth_attr if not
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna# present. These define authorizations used by LDoms vntsd daemon.
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna # Add entries to auth_attr file, if needed
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna $GREP '^solaris.vntsd.:' ${AUTH_ATTR} >/dev/null 2>&1
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna if [ $? -ne 0 ] ; then
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna# Added by svc-vntsd
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatnasolaris.vntsd.:::LDoms vntsd Administration::
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatnasolaris.vntsd.grant:::Delegate LDoms vntsd Administration::
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatnasolaris.vntsd.consoles:::Access All LDoms Guest Consoles::
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna# End of svc-vntsd
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna# Add a LDoms user/role entry to etc/user_attr if not present.
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna# This defines user/role used by useradd or roleadd.
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna # Add entries to user_attr file, if needed.
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna $GREP 'solaris.vntsd.grant' ${USER_ATTR} >/dev/null 2>&1
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna if [ $? -ne 0 ] ; then
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna $GREP '^root' ${USER_ATTR} | $GREP 'auths=' >/dev/null 2>&1
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna if [ $? -eq 0 ] ; then
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna # Add vntsd attribute to an existing root entry.
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna $ED -s ${USER_ATTR} <<- EOF > /dev/null 2>&1
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna g/^root.*auths\=/s/^roo.*auths\=/&solaris.vntsd.grant,/
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna # Add a root entry with vntsd attribute.
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna $CAT >>${USER_ATTR} << EOF
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna# Added by svc-vntsd
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatnaroot::::type=normal;auths=solaris.vntsd.grant;lock_after_retries=0
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna# End of svc-vntsd
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna# Update 'vntsd' authorizations in the relevant files. Note that adding these
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna# entries from this smf script rather than from the pkg install scripts,
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna# ensures that they are added only if the vntsd service is being enabled; and
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna# hence avoids adding these entries unnecessarily into client guest domains.
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatna# The functions check before adding, that the entries are not already present.
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatnavcc_device=`$SVCPROP -p vntsd/vcc_device $SMF_FMRI 2>/dev/null`
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppoif [ -z "$vcc_device" ]; then
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatnalisten_addr=`$SVCPROP -p vntsd/listen_addr $SMF_FMRI 2>/dev/null`
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppoif [ -n "$listen_addr" ]; then
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatnatimeout=`$SVCPROP -p vntsd/timeout_minutes $SMF_FMRI 2>/dev/null`
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppoif [ -n "$timeout" ]; then
28b1e50e4eed7be353f9778497714aab53ef2a0dSriharsha Basavapatnaauth=`$SVCPROP -p vntsd/authorization $SMF_FMRI 2>/dev/null`
25b895bc9d3dbeb672f8d067af54c94268c932e5Zach Kissel# If we don't have a vcc device we don't want to try to start vntsd. By default
25b895bc9d3dbeb672f8d067af54c94268c932e5Zach Kissel# newer versions of the factory settings will try to start vntsd by default.
25b895bc9d3dbeb672f8d067af54c94268c932e5Zach Kissel# Since we may be installed on a machine with an older firmware we need to make
25b895bc9d3dbeb672f8d067af54c94268c932e5Zach Kissel# sure that we don't try to start if the virtual console concentrator is not
25b895bc9d3dbeb672f8d067af54c94268c932e5Zach KisselVNTSD_DEV='/devices/virtual-devices@100/channel-devices@200/virtual-console-concentrator@0:ctl'
25b895bc9d3dbeb672f8d067af54c94268c932e5Zach Kisselif [ ! -c "$VNTSD_DEV" ]; then
25b895bc9d3dbeb672f8d067af54c94268c932e5Zach Kissel echo "The Virtual Network Terminal Server service has been disabled" \
25b895bc9d3dbeb672f8d067af54c94268c932e5Zach Kissel "because the system has no virtual console concentrator (vcc)" \
4d39be2b45b5ac811d28452e6eb629ac64aebfc4sg # if vntsd exited in error with status 1, let SMF restart it
4d39be2b45b5ac811d28452e6eb629ac64aebfc4sg # otherwise we want it to go into maintenance.