svc-rbac revision c11c3631128bd03ca6eb2504d1d2c1b5ec1c130f
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek#! /usr/bin/sh
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek#
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek# CDDL HEADER START
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek#
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek# The contents of this file are subject to the terms of the
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek# Common Development and Distribution License (the "License").
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek# You may not use this file except in compliance with the License.
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek#
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek# or http://www.opensolaris.org/os/licensing.
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek# See the License for the specific language governing permissions
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek# and limitations under the License.
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek#
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek# When distributing Covered Code, include this CDDL HEADER in each
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek# If applicable, add the following below this CDDL HEADER, with the
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek# fields enclosed by brackets "[]" replaced with your own identifying
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek# information: Portions Copyright [yyyy] [name of copyright owner]
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek#
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek# CDDL HEADER END
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek#
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek
d387c4608dbd3ca056e18e85313ef51aac146fd2Pavel Březina#
d387c4608dbd3ca056e18e85313ef51aac146fd2Pavel Březina# Copyright 2010 Sun Microsystems, Inc. All rights reserved.
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek# Use is subject to license terms.
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek#
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek. /lib/svc/share/smf_include.sh
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozekfiles='/etc/user_attr /etc/security/auth_attr /etc/security/exec_attr
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek /etc/security/prof_attr'
d387c4608dbd3ca056e18e85313ef51aac146fd2Pavel Březina
d387c4608dbd3ca056e18e85313ef51aac146fd2Pavel BřezinaPKGINST=
d387c4608dbd3ca056e18e85313ef51aac146fd2Pavel Březinaexport PKGINST
d387c4608dbd3ca056e18e85313ef51aac146fd2Pavel Březina
d387c4608dbd3ca056e18e85313ef51aac146fd2Pavel Březinairbac=/usr/sadm/install/scripts/i.rbac
d387c4608dbd3ca056e18e85313ef51aac146fd2Pavel Březina
d387c4608dbd3ca056e18e85313ef51aac146fd2Pavel Březinaif [ ! -x $irbac ]
d387c4608dbd3ca056e18e85313ef51aac146fd2Pavel Březinathen
d387c4608dbd3ca056e18e85313ef51aac146fd2Pavel Březina echo "${irbac}: not found."
d387c4608dbd3ca056e18e85313ef51aac146fd2Pavel Březina exit $SMF_EXIT_ERR_FATAL
d387c4608dbd3ca056e18e85313ef51aac146fd2Pavel Březinafi
d387c4608dbd3ca056e18e85313ef51aac146fd2Pavel Březina
d387c4608dbd3ca056e18e85313ef51aac146fd2Pavel Březinacase "$1" in
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozekstart|refresh)
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek ;;
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozekstop)
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek exit $SMF_EXIT_OK;;
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek*)
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek echo "Usage: $0 { start | refresh | stop }"
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek exit $SMF_EXIT_ERR_FATAL;;
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozekesac
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozekfor f in $files
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozekdo
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek d=${f}.d
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek if [ ! -d ${d} ]
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek then
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek # No directory, nothing to do
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek continue
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek fi
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek # cache user/owner of file to update
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek ownergroup=`ls -ln $f | awk '{printf("%s:%s\n", $3, $4);'}`
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek #
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek # List all the files in the directory and the destination file
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek # in the order of their timestamp. Most recent files are
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek # displayed first. When we find the destination file, we're
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek # done as the rest of the files are older and they are already
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek # incorporated.
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek #
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek update=0
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek for frag in `ls -t $f $d/* 2> /dev/null`
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek do
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek if [ "$frag" = "$f" ]
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek then
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek break
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek fi
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek if [ -f "$frag" ]
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek then
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek update=1
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek echo $frag $f | $irbac
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek fi
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek done
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek if [ $update -eq 1 ]
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek then
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek chown $ownergroup $f
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek fi
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozekdone
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozekexit $SMF_EXIT_OK
590582be38cdbfde387fcc57df92903d48c5a083Jakub Hrozek