106d0f3f3SCasper H.S. Dik#! /usr/bin/sh 206d0f3f3SCasper H.S. Dik# 306d0f3f3SCasper H.S. Dik# CDDL HEADER START 406d0f3f3SCasper H.S. Dik# 506d0f3f3SCasper H.S. Dik# The contents of this file are subject to the terms of the 606d0f3f3SCasper H.S. Dik# Common Development and Distribution License (the "License"). 706d0f3f3SCasper H.S. Dik# You may not use this file except in compliance with the License. 806d0f3f3SCasper H.S. Dik# 906d0f3f3SCasper H.S. Dik# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1006d0f3f3SCasper H.S. Dik# or http://www.opensolaris.org/os/licensing. 1106d0f3f3SCasper H.S. Dik# See the License for the specific language governing permissions 1206d0f3f3SCasper H.S. Dik# and limitations under the License. 1306d0f3f3SCasper H.S. Dik# 1406d0f3f3SCasper H.S. Dik# When distributing Covered Code, include this CDDL HEADER in each 1506d0f3f3SCasper H.S. Dik# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1606d0f3f3SCasper H.S. Dik# If applicable, add the following below this CDDL HEADER, with the 1706d0f3f3SCasper H.S. Dik# fields enclosed by brackets "[]" replaced with your own identifying 1806d0f3f3SCasper H.S. Dik# information: Portions Copyright [yyyy] [name of copyright owner] 1906d0f3f3SCasper H.S. Dik# 2006d0f3f3SCasper H.S. Dik# CDDL HEADER END 2106d0f3f3SCasper H.S. Dik# 2206d0f3f3SCasper H.S. Dik 2306d0f3f3SCasper H.S. Dik# 24*c11c3631SJoep Vesseur# Copyright 2010 Sun Microsystems, Inc. All rights reserved. 2506d0f3f3SCasper H.S. Dik# Use is subject to license terms. 2606d0f3f3SCasper H.S. Dik# 2706d0f3f3SCasper H.S. Dik 2806d0f3f3SCasper H.S. Dik. /lib/svc/share/smf_include.sh 2906d0f3f3SCasper H.S. Dik 3006d0f3f3SCasper H.S. Dikfiles='/etc/user_attr /etc/security/auth_attr /etc/security/exec_attr 3106d0f3f3SCasper H.S. Dik /etc/security/prof_attr' 3206d0f3f3SCasper H.S. Dik 3306d0f3f3SCasper H.S. DikPKGINST= 3406d0f3f3SCasper H.S. Dikexport PKGINST 3506d0f3f3SCasper H.S. Dik 3606d0f3f3SCasper H.S. Dikirbac=/usr/sadm/install/scripts/i.rbac 3706d0f3f3SCasper H.S. Dik 3806d0f3f3SCasper H.S. Dikif [ ! -x $irbac ] 3906d0f3f3SCasper H.S. Dikthen 4006d0f3f3SCasper H.S. Dik echo "${irbac}: not found." 4106d0f3f3SCasper H.S. Dik exit $SMF_EXIT_ERR_FATAL 4206d0f3f3SCasper H.S. Dikfi 4306d0f3f3SCasper H.S. Dik 4406d0f3f3SCasper H.S. Dikcase "$1" in 4506d0f3f3SCasper H.S. Dikstart|refresh) 4606d0f3f3SCasper H.S. Dik ;; 4706d0f3f3SCasper H.S. Dikstop) 4806d0f3f3SCasper H.S. Dik exit $SMF_EXIT_OK;; 4906d0f3f3SCasper H.S. Dik*) 5006d0f3f3SCasper H.S. Dik echo "Usage: $0 { start | refresh | stop }" 5106d0f3f3SCasper H.S. Dik exit $SMF_EXIT_ERR_FATAL;; 5206d0f3f3SCasper H.S. Dikesac 5306d0f3f3SCasper H.S. Dik 5406d0f3f3SCasper H.S. Dikfor f in $files 5506d0f3f3SCasper H.S. Dikdo 5606d0f3f3SCasper H.S. Dik d=${f}.d 5706d0f3f3SCasper H.S. Dik if [ ! -d ${d} ] 5806d0f3f3SCasper H.S. Dik then 5906d0f3f3SCasper H.S. Dik # No directory, nothing to do 6006d0f3f3SCasper H.S. Dik continue 6106d0f3f3SCasper H.S. Dik fi 62*c11c3631SJoep Vesseur # cache user/owner of file to update 63*c11c3631SJoep Vesseur ownergroup=`ls -ln $f | awk '{printf("%s:%s\n", $3, $4);'}` 6406d0f3f3SCasper H.S. Dik # 6506d0f3f3SCasper H.S. Dik # List all the files in the directory and the destination file 6606d0f3f3SCasper H.S. Dik # in the order of their timestamp. Most recent files are 6706d0f3f3SCasper H.S. Dik # displayed first. When we find the destination file, we're 6806d0f3f3SCasper H.S. Dik # done as the rest of the files are older and they are already 6906d0f3f3SCasper H.S. Dik # incorporated. 7006d0f3f3SCasper H.S. Dik # 71*c11c3631SJoep Vesseur update=0 7206d0f3f3SCasper H.S. Dik for frag in `ls -t $f $d/* 2> /dev/null` 7306d0f3f3SCasper H.S. Dik do 7406d0f3f3SCasper H.S. Dik if [ "$frag" = "$f" ] 7506d0f3f3SCasper H.S. Dik then 7606d0f3f3SCasper H.S. Dik break 7706d0f3f3SCasper H.S. Dik fi 7806d0f3f3SCasper H.S. Dik if [ -f "$frag" ] 7906d0f3f3SCasper H.S. Dik then 80*c11c3631SJoep Vesseur update=1 8106d0f3f3SCasper H.S. Dik echo $frag $f | $irbac 8206d0f3f3SCasper H.S. Dik fi 8306d0f3f3SCasper H.S. Dik done 84*c11c3631SJoep Vesseur if [ $update -eq 1 ] 85*c11c3631SJoep Vesseur then 86*c11c3631SJoep Vesseur chown $ownergroup $f 87*c11c3631SJoep Vesseur fi 8806d0f3f3SCasper H.S. Dikdone 8906d0f3f3SCasper H.S. Dik 9006d0f3f3SCasper H.S. Dikexit $SMF_EXIT_OK 91