i.minorperm_i386 revision b26a64ae582e72d0b4c710cd8eba9c4afd4a9fdd
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont#!/bin/sh
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User#
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont# CDDL HEADER START
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User#
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User# The contents of this file are subject to the terms of the
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User# Common Development and Distribution License (the "License").
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont# You may not use this file except in compliance with the License.
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont#
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont# or http://www.opensolaris.org/os/licensing.
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont# See the License for the specific language governing permissions
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# and limitations under the License.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox User# When distributing Covered Code, include this CDDL HEADER in each
50066670817cdf9e86c832066d73715232b29680Tinderbox User# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont# If applicable, add the following below this CDDL HEADER, with the
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont# fields enclosed by brackets "[]" replaced with your own identifying
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont# information: Portions Copyright [yyyy] [name of copyright owner]
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont#
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont# CDDL HEADER END
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont#
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont#
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
50066670817cdf9e86c832066d73715232b29680Tinderbox User# Use is subject to license terms.
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont#
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont#ident "%Z%%M% %I% %E% SMI"
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont#
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont#
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont# NOTE: When a change is made to the source file for
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont# /etc/minor_perm, a corresponding change must be made to
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# this class-action script.
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# - If an existing entry in minor_perm is having its
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont# attributes e.g. permissions, ownership changed,
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# add it to the list produced by make_chattr_list below.
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# - If an existing entry must be deleted, add it to
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont# the list produced by make_delete_list below.
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# - If a new entry must be added to the file, add it to the
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# list produced by make_add_list.
7e71f05d8643aca84914437c900cb716444507e4Tinderbox User#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# - If a new entry is being added to minor_perm, but there
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox User# may already be devices of that name on the system (e.g.
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox User# we used the system default permissions in a previous release),
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox User# and those old devices now need to have their attributes changed,
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# add it to the make_chattr_list AND the make_add_list lists
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox User#
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox User
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# If an entry in /etc/minor_perm needs to have its attributes
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater# changed, identify the entry in the list copied to /etc/chattr.$$
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater# by this function. The fields are:
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater#
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater# <device>:<minor> <old_attrs> <new_attrs> <optional list of logical
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# devices whose attributes
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# will need to be changed>
7e71f05d8643aca84914437c900cb716444507e4Tinderbox User#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# where an <attribute list> := <perm> <user> <group>
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont#
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont# NOTE: this list should also contain entries for nodes that previously
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# were not in /etc/minor_perm (which means the default mode of 600,
28b3569d6248168e6c00caab951521cc8141a49dAutomatic Updater# owner/group == root/sys), but now have an entry
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User#
cd791043c8a6edbcacc2392575a9816d19b8157cTinderbox User
cd791043c8a6edbcacc2392575a9816d19b8157cTinderbox Usermake_chattr_list()
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater{
28b3569d6248168e6c00caab951521cc8141a49dAutomatic Updatercat > /tmp/chattr.$$ << EOF
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Uservol:volctl 0600 root sys 0666 root sys /dev/volctl
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:llc1 0600 root sys 0666 root sys /dev/llc1
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:sound,sbpro 0666 root sys 0600 root sys /dev/sound/*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usersbpro:* 0666 root sys 0600 root sys /dev/sound/*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userlog:conslog 0620 root sys 0666 root sys /dev/conslog
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usersy:tty 0666 root sys 0666 root tty /dev/tty
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usericmp:icmp 0600 root sys 0666 root sys /dev/rawip
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usericmp6:icmp6 0600 root sys 0666 root sys /dev/rawip6
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userip:ip 0660 root sys 0666 root sys /dev/ip
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userip6:ip6 0660 root sys 0666 root sys /dev/ip6
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userrts:rts 0660 root sys 0666 root sys /dev/rts
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userkeysock:keysock 0600 root sys 0666 root sys /dev/keysock
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Useripsecah:ipsecah 0600 root sys 0666 root sys /dev/ipsecah
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Useripsecesp:ipsecesp 0600 root sys 0666 root sys /dev/ipsecesp
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userspdsock:spdsock 0600 root sys 0666 root sys /dev/spdsock
2a6d4c9948b3f4f31311bd799d114585a30419a9Automatic Updatersad:admin 0600 root sys 0666 root sys /dev/sad/admin
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userfssnap:ctl 0600 root sys 0666 root sys /dev/fssnapctl
2a6d4c9948b3f4f31311bd799d114585a30419a9Automatic Updaterfssnap:* 0600 root sys 0640 root sys /dev/fssnap/*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:dnet 0600 root sys 0666 root sys /dev/dnet
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userdnet:* 0600 root sys 0666 root sys /dev/dnet*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:elxl 0600 root sys 0666 root sys /dev/elxl
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userelxl:* 0600 root sys 0666 root sys /dev/elxl*
8ec3c085233cedb22b05da36e2773c8f357a7e45Automatic Updaterclone:iprb 0600 root sys 0666 root sys /dev/iprb
6ea2385360e9e2167e65f9286447da9eea189457Tinderbox Useriprb:* 0600 root sys 0666 root sys /dev/iprb*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:pcelx 0600 root sys 0666 root sys /dev/pcelx
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userpcelx:* 0600 root sys 0666 root sys /dev/pcelx*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:spwr 0600 root sys 0666 root sys /dev/spwr
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userspwr:* 0600 root sys 0666 root sys /dev/spwr*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usercpc:* 0600 root sys 0666 root sys /devices/pseudo/cpc*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Useripf:* 0600 root sys 0666 root sys /dev/ipf
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userpfil:* 0600 root sys 0666 root sys /dev/pfil
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userscsi_vhci:devctl 0600 root sys 0666 root sys /devices/scsi_vhci:devctl
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userfbt:fbt 0600 root sys 0644 root sys /dev/dtrace/provider/fbt
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userlockstat:* 0600 root sys 0644 root sys /dev/dtrace/provider/lockstat
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userprofile:profile 0600 root sys 0644 root sys /dev/dtrace/provider/profile
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usersdt:sdt 0600 root sys 0644 root sys /dev/dtrace/provider/sdt
2a31bd531072824ef252c18303859d6af7451b00Francis Dupontsystrace:systrace 0600 root sys 0644 root sys /dev/dtrace/provider/systrace
bbbf2e27d3a981163dab139497d6b2dc85449db0Tinderbox Userclone:bge 0600 root sys 0666 root sys /dev/bge
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:ixgbe 0600 root sys 0666 root sys /dev/ixgbe
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:rge 0600 root sys 0666 root sys /dev/rge
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:xge 0600 root sys 0666 root sys /dev/xge
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:nge 0600 root sys 0666 root sys /dev/nge
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:chxge 0600 root sys 0666 root sys /dev/chxge
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:pcn 0600 root sys 0666 root sys /dev/pcn
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:rtls 0600 root sys 0666 root sys /dev/rtls
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:ath 0600 root sys 0666 root sys /dev/ath
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:ipw 0600 root sys 0666 root sys /dev/ipw
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:iwi 0600 root sys 0666 root sys /dev/iwi
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:iwk 0600 root sys 0666 root sys /dev/iwk
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:pcwl 0600 root sys 0666 root sys /dev/pcwl
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:pcan 0600 root sys 0666 root sys /dev/pcan
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:ral 0600 root sys 0666 root sys /dev/ral
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:rtw 0600 root sys 0666 root sys /dev/rtw
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:ural 0600 root sys 0666 root sys /dev/ural
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:wpi 0600 root sys 0666 root sys /dev/wpi
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:afe 0600 root sys 0666 root sys /dev/afe
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:dmfe 0600 root sys 0666 root sys /dev/dmfe
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:mxfe 0600 root sys 0666 root sys /dev/mxfe
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userbge:* 0600 root sys 0666 root sys /dev/bge*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userixgbe:* 0600 root sys 0666 root sys /dev/ixgbe*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userrge:* 0600 root sys 0666 root sys /dev/rge*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userxge:* 0600 root sys 0666 root sys /dev/xge*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usernge:* 0600 root sys 0666 root sys /dev/nge*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usere1000g:* 0666 root root 0666 root sys /dev/e1000g*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userchxge:* 0600 root sys 0666 root sys /dev/chxge*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userpcn:* 0600 root sys 0666 root sys /dev/pcn*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userrtls:* 0600 root sys 0666 root sys /dev/rtls*
2a31bd531072824ef252c18303859d6af7451b00Francis Dupontath:* 0600 root sys 0666 root sys /dev/ath*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Useripw:* 0600 root sys 0666 root sys /dev/ipw*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Useriwi:* 0600 root sys 0666 root sys /dev/iwi*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Useriwk:* 0600 root sys 0666 root sys /dev/iwk*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userpcwl:* 0600 root sys 0666 root sys /dev/pcwl*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userpcan:* 0600 root sys 0666 root sys /dev/pcan*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userral:* 0600 root sys 0666 root sys /dev/ral*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userrtw:* 0600 root sys 0666 root sys /dev/rtw*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userural:* 0600 root sys 0666 root sys /dev/ural*
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updaterwpi:* 0600 root sys 0666 root sys /dev/wpi*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userafe:* 0600 root sys 0666 root sys /dev/afe*
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updaterdmfe:* 0600 root sys 0666 root sys /dev/dmfe*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntmxfe:* 0600 root sys 0666 root sys /dev/mxfe*
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic UpdaterEOF
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater}
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater#
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater# If an entry in /etc/minor_perm needs to be deleted, identify
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User# the entry in the list copied to /etc/delete.$$ by this function.
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont# The fields are:
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User# <device>:<minor> <optional list of logical devices to be deleted>
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User#
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User
2a31bd531072824ef252c18303859d6af7451b00Francis Dupontmake_delete_list()
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User{
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usercat > /tmp/delete.$$ << EOF
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userrip:rawip
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userconsfb:consfb
f8e3e03cacd16ffb923a9603fca23a9e1a1fee07Automatic Updaterclone:el
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:elx
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:sle
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:sie
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:sp
2a31bd531072824ef252c18303859d6af7451b00Francis Dupontclone:ip
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:icmp
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:udp
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:tcp
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:rts
0a7ed88633a680bb881868b75ded4d09a7bbbc50Automatic Updaterclone:arp
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:ipsecah
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:ipsecesp
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:keysock
2a31bd531072824ef252c18303859d6af7451b00Francis Dupontclone:smc
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:tr
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userelx:*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userwin:*
a3f8c8e20780e488141d200acdfea6c5f3303513Automatic Updatercmtp:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userprofile:profile
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userasy:[a-z]
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userasy:[a-z],cu
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Useri2o_bs:*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox UserEOF
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User}
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User#
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont# If an entry needs to be added to /etc/minor_perm, add the first
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# field of the entry to the list created by this function. The
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User# remainder of the entry will be extracted from the /etc/minor_perm
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User# in the package being installed, so it is not necessary to supply
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User# it here.
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User#
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Usermake_add_list()
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User{
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usercat > /tmp/add.$$ << EOF
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Uservol:volctl
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Userclone:llc1
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Usertnf:tnfctl
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Usertnf:tnfmap
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Userst:*
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Userpm:*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userdevinfo:devinfo
2a31bd531072824ef252c18303859d6af7451b00Francis Dupontopeneepr:openprom
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userwc:*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userip:ip
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userip6:ip6
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usericmp:icmp
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usericmp6:icmp6
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userudp:udp
2a31bd531072824ef252c18303859d6af7451b00Francis Dupontudp6:udp6
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usertcp:tcp
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usertcp6:tcp6
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userrts:rts
6f1205897504b8f50b1785975482c995888dd630Tinderbox Userarp:arp
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userpoll:*
6f1205897504b8f50b1785975482c995888dd630Tinderbox Userpool:pool
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userpool:poolctl
a3416b0a1b5482b6df32839445ca98c016945570Automatic Updatercpc:shared
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usersysmsg:msglog
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usersysmsg:sysmsg
a3416b0a1b5482b6df32839445ca98c016945570Automatic Updateripsecah:ipsecah
a3416b0a1b5482b6df32839445ca98c016945570Automatic Updateripsecesp:ipsecesp
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userkeysock:keysock
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userspdsock:spdsock
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userdevinfo:devinfo,ro
2a31bd531072824ef252c18303859d6af7451b00Francis Dupontlofi:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userlofi:ctl
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usersgen:*
7e71f05d8643aca84914437c900cb716444507e4Tinderbox Userfssnap:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userfssnap:ctl
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updaterrsm:*
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updaterrandom:*
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updatermm:allkmem
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updaterclone:dnet
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updaterdnet:*
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updaterclone:elxl
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updaterelxl:*
bbbf2e27d3a981163dab139497d6b2dc85449db0Tinderbox Userclone:ibd
bbbf2e27d3a981163dab139497d6b2dc85449db0Tinderbox Useribd:*
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updaterclone:iprb
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Useriprb:*
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updaterclone:pcelx
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userpcelx:*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:spwr
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userspwr:*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usersysevent:*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userramdisk:*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userramdisk:ctl
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usercryptoadm:cryptoadm
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usercrypto:crypto
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userdtrace:*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userfasttrap:fasttrap
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Useripf:*
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updaterpfil:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userbl:*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usersctp:*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usersctp6:*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Uservni:*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usercpuid:self
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:bge
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updaterclone:ixgbe
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:rge
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:xge
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:nge
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:e1000g
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:chxge
79cf9524b15ca65f55fd6913e6cf01b5581c588aAutomatic Updaterclone:pcn
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:rtls
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:ath
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:ipw
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:iwi
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:iwk
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updaterclone:pcwl
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:pcan
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:ral
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:rtw
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:ural
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:wpi
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:afe
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:dmfe
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userclone:mxfe
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userbge:*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userixgbe:*
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Userrge:*
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Userxge:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usernge:*
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Usere1000g:*
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Userchxge:*
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Userpcn:*
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Userrtls:*
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Userath:*
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Useripw:*
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Useriwi:*
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Useriwk:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userpcwl:*
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Userpcan:*
9d557856c2a19ec95ee73245f60a92f8675cf5baTinderbox Userral:*
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Userrtw:*
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Userural:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userwpi:*
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Userafe:*
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Userdmfe:*
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Usermxfe:*
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Userbmc:bmc
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Userdld:*
794b79e6bbc3f5db1ea6ae154d739b9f1ef1a375Tinderbox Useraggr:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usersmbios:smbios
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updaterzfs:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userzfs:zfs
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userscsi_vhci:*
7e71f05d8643aca84914437c900cb716444507e4Tinderbox Userkssl:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userfbt:fbt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntprofile:profile
2a31bd531072824ef252c18303859d6af7451b00Francis Dupontsdt:sdt
2a31bd531072824ef252c18303859d6af7451b00Francis Dupontsoftmac:*
2a31bd531072824ef252c18303859d6af7451b00Francis Dupontsystrace:systrace
2a31bd531072824ef252c18303859d6af7451b00Francis Dupontlx_ptm:lx_ptmajor
2a31bd531072824ef252c18303859d6af7451b00Francis Dupontlx_systrace:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userphysmem:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userasy:*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userasy:*,cu
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userucode:*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Useracpi_drv:*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usersmbsrv:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Uservscan:*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usernsmb:*
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userballoon:*
2a31bd531072824ef252c18303859d6af7451b00Francis Dupontdomcaps:*
9d557856c2a19ec95ee73245f60a92f8675cf5baTinderbox Userevtchn:*
2a31bd531072824ef252c18303859d6af7451b00Francis Dupontprivcmd:*
2a31bd531072824ef252c18303859d6af7451b00Francis Dupontxenbus:*
2a31bd531072824ef252c18303859d6af7451b00Francis DupontEOF
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont}
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updater
2a31bd531072824ef252c18303859d6af7451b00Francis DupontPATH="/sbin:/usr/sbin:/usr/bin:/usr/sadm/install/bin"
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userexport PATH
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont# Internal routine to create a sed script which can be used to
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont# escape all shell globbing metacharacters in a path.
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont
2a31bd531072824ef252c18303859d6af7451b00Francis Dupontcreate_esc_sedscript()
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User{
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updatercat > /tmp/esc.sed.$$ << EOF
c7d32c0b0ff4c01f0d4479af3410d3c06044d48aAutomatic Updaters/\*/\\\\*/g
2a31bd531072824ef252c18303859d6af7451b00Francis Duponts/\?/\\\\?/g
2a31bd531072824ef252c18303859d6af7451b00Francis Duponts/\[/\\\\[/g
2a31bd531072824ef252c18303859d6af7451b00Francis Duponts/\]/\\\\]/g
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserEOF
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User}
7e71f05d8643aca84914437c900cb716444507e4Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# Internal routine to convert an entry in a /tmp/chwhatever.$$ file to
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# an appropriately escaped pattern which can be used to grep into minor_perm.
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont
bbbf2e27d3a981163dab139497d6b2dc85449db0Tinderbox Userentry2pattern()
bbbf2e27d3a981163dab139497d6b2dc85449db0Tinderbox User{
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont # the first argument is the 'key' field from the change file.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # entries can contain shell globbing characters to match
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont # several devices - hence all the palaver below.
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont printf '%s' `echo "$1" | sed \
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont -e 's/\*/\\\\*/g' -e 's/\?/\\\\?/g' \
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont -e 's/\./\\\\./g' -e 's/\[/\\\\[/g' \
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont -e 's/\]/\\\\]/g'`
50066670817cdf9e86c832066d73715232b29680Tinderbox User shift
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox User
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont # the remaining optional arguments are tokens separated by white-space
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont if [ $# = 0 ] ; then
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont printf '[ \t]'
922312472e2e05ebc64993d465999c5351b83036Automatic Updater else
50066670817cdf9e86c832066d73715232b29680Tinderbox User while [ -n "$1" ]
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont do
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont printf '[ \t][ \t]*%s' $1
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont shift
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont done
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont printf '[ \t]*$'
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont fi
c2258eedf2d9d0207b45b90014f8fde5413b41a3Tinderbox User}
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont
2a31bd531072824ef252c18303859d6af7451b00Francis Dupontwhile read src dest
do
if [ ! -f $dest ] ; then
cp $src $dest
else
rm -f /tmp/*.$$
create_esc_sedscript
make_chattr_list
make_delete_list
make_add_list
#
# Process the list of devices whose attributes are to be
# changed. Find those that actually need to be
# applied to the file. For each change that needs
# to be applied, add an entry for it to the sed
# script that will eventually be applied to the
# currently-installed /etc/minor_perm file. Also,
# add an entry to the /tmp/chdevs.$$ file, which
# contains the list of logical names of devices
# whose permissions need to be changed.
#
cat /tmp/chattr.$$ | \
while read key oldp oldu oldg newp newu newg chdevs
do
do_chdevs=no
#
# First determine whether the device entry
# is already in the file, but with the old
# permissions. If so, the entry needs to be
# modified and the devices in the chdevs list
# need to have their permissions and ownerships
# changed.
#
grepstr=`entry2pattern "${key}" $oldp $oldu $oldg`
if grep "$grepstr" $dest > /dev/null 2>&1; then
echo "s/${grepstr}/$key $newp $newu $newg/" \
>> /tmp/sedscript.$$
do_chdevs=yes
fi
#
# Now determine whether the device entry is
# in the file at all. If not, it is a new
# entry, but there may already be devices
# on the system whose permissions need to
# be changed.
#
grepstr=`entry2pattern "${key}"`
grep "${grepstr}" $dest > /dev/null 2>&1
if [ $? != 0 ] ; then
do_chdevs=yes
fi
if [ $do_chdevs = yes -a "$chdevs" != "" ] ; then
xchdevs=`echo "$chdevs" | \
sed -f /tmp/esc.sed.$$`
for m in $xchdevs ; do
echo "$m" $oldp $oldu $oldg \
$newp $newu $newg >> /tmp/chdevs.$$
done
fi
done
# sort the "change attributes" list
if [ -s /tmp/chdevs.$$ ] ; then
sort -u /tmp/chdevs.$$ > /tmp/tmp.$$
mv /tmp/tmp.$$ /tmp/chdevs.$$
fi
#
# Process the list of devices to be deleted.
# Find those that actually need to be deleted
# from the file. For each entry to be deleted,
# add an entry for it to the sed script that will
# eventually be applied to the currently-installed
# /etc/minor_perm file. Also, add an entry to the
# /tmp/deldevs.$$ file, which contains the list of
# logical names of devices to be deleted.
#
cat /tmp/delete.$$ | while read key deldevs
do
grepstr=`entry2pattern "${key}"`
if grep "$grepstr" $dest > /dev/null 2>&1; then
echo "/${grepstr}/d" >> /tmp/sedscript.$$
if [ "$deldevs" != "" ] ; then
xdeldevs=`echo "$deldevs" | \
sed -f /tmp/esc.sed.$$`
for m in $xdeldevs ; do
echo "$m" >> /tmp/deldevs.$$
done
fi
fi
done
if [ -s /tmp/deldevs.$$ ] ; then
sort -u /tmp/deldevs.$$ > /tmp/tmp.$$
mv /tmp/tmp.$$ /tmp/deldevs.$$
fi
#
# Apply the sed script possibly built above to the
# currently-installed /etc/minor_perm file.
#
if [ -s /tmp/sedscript.$$ ] ; then
sed -f /tmp/sedscript.$$ $dest > /tmp/tmp.$$
cp /tmp/tmp.$$ $dest
fi
# For all entries in minor_perm whose attributes had
# to be corrected, correct the relevant attributes of the
# already-existing devices that correspond to those
# entries.
#
if [ -s /tmp/chdevs.$$ -a "$PKG_INSTALL_ROOT" != "" -a \
"$PKG_INSTALL_ROOT" != "/" ] ; then
cat /tmp/chdevs.$$ |\
while read device oldp oldu oldg newp newu newg
do
#
# Note that we take pains -only- to change
# the permission/ownership of devices that
# have kept their original permissions.
#
for dev in $PKG_INSTALL_ROOT/$device; do
find $dev -follow -perm $oldp -exec \
chmod $newp $dev \; >/dev/null 2>&1
find $dev -follow -user $oldu -exec \
chown $newu $dev \; >/dev/null 2>&1
find $dev -follow -group $oldg -exec \
chgrp $newg $dev \; >/dev/null 2>&1
done
done
fi
#
# For all entries in minor_perm that were deleted,
# remove the /dev entries that point to device nodes
# that correspond to those entries.
#
if [ -s /tmp/deldevs.$$ -a "$PKG_INSTALL_ROOT" != "" -a \
"$PKG_INSTALL_ROOT" != "/" ] ; then
cat /tmp/deldevs.$$ | while read device
do
rm -f $PKG_INSTALL_ROOT/$device
done
fi
cat /tmp/add.$$ | while read key
do
grepstr=`entry2pattern "${key}"`
grep "$grepstr" $dest > /dev/null 2>&1
if [ $? != 0 ] ; then
grep "$grepstr" $src >> $dest
fi
done
rm -f /tmp/*.$$
fi
done
exit 0