i.minorperm_i386 revision 4eaa471005973e11a6110b69fe990530b3b95a38
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#!/bin/sh
11e9368a226272085c337e9e74b79808c16fbdbaTinderbox User#
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews# CDDL HEADER START
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
4a14ce5ba00ab7bc55c99ffdcf59c7a4ab902721Automatic Updater# The contents of this file are subject to the terms of the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Common Development and Distribution License (the "License").
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# You may not use this file except in compliance with the License.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# or http://www.opensolaris.org/os/licensing.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# See the License for the specific language governing permissions
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# and limitations under the License.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# When distributing Covered Code, include this CDDL HEADER in each
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# If applicable, add the following below this CDDL HEADER, with the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# fields enclosed by brackets "[]" replaced with your own identifying
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# information: Portions Copyright [yyyy] [name of copyright owner]
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox User# CDDL HEADER END
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Use is subject to license terms.
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox User#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# NOTE: When a change is made to the source file for
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# /etc/minor_perm, a corresponding change must be made to
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox User# this class-action script.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# - If an existing entry in minor_perm is having its
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# attributes e.g. permissions, ownership changed,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# add it to the list produced by make_chattr_list below.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews#
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# - If an existing entry must be deleted, add it to
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# the list produced by make_delete_list below.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# - If a new entry must be added to the file, add it to the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# list produced by make_add_list.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# - If a new entry is being added to minor_perm, but there
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# may already be devices of that name on the system (e.g.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# we used the system default permissions in a previous release),
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# and those old devices now need to have their attributes changed,
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# add it to the make_chattr_list AND the make_add_list lists
46472a450e043434d78fa18edc73bca8c47f3981Tinderbox User#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# If an entry in /etc/minor_perm needs to have its attributes
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# changed, identify the entry in the list copied to /etc/chattr.$$
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# by this function. The fields are:
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# <device>:<minor> <old_attrs> <new_attrs> <optional list of logical
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# devices whose attributes
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# will need to be changed>
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# where an <attribute list> := <perm> <user> <group>
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# 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,
f9ce6280cec79deb16ff6d9807aa493ff23e10d9Tinderbox User# owner/group == root/sys), but now have an entry
46472a450e043434d78fa18edc73bca8c47f3981Tinderbox User#
f9ce6280cec79deb16ff6d9807aa493ff23e10d9Tinderbox User
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntmake_chattr_list()
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt{
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usercat > /tmp/chattr.$$ << EOF
46472a450e043434d78fa18edc73bca8c47f3981Tinderbox Uservol:volctl 0600 root sys 0666 root sys /dev/volctl
46472a450e043434d78fa18edc73bca8c47f3981Tinderbox Userclone:llc1 0600 root sys 0666 root sys /dev/llc1
e285c11870c6263cd79b418e104c7eb3e2d96952Tinderbox Userlog:conslog 0620 root sys 0666 root sys /dev/conslog
46472a450e043434d78fa18edc73bca8c47f3981Tinderbox Usersy:tty 0666 root sys 0666 root tty /dev/tty
46472a450e043434d78fa18edc73bca8c47f3981Tinderbox Usericmp:icmp 0600 root sys 0666 root sys /dev/rawip
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunticmp6:icmp6 0600 root sys 0666 root sys /dev/rawip6
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userip:ip 0660 root sys 0666 root sys /dev/ip
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userip6:ip6 0660 root sys 0666 root sys /dev/ip6
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntrts:rts 0660 root sys 0666 root sys /dev/rts
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntkeysock:keysock 0600 root sys 0666 root sys /dev/keysock
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Useripsecah:ipsecah 0600 root sys 0666 root sys /dev/ipsecah
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntipsecesp:ipsecesp 0600 root sys 0666 root sys /dev/ipsecesp
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userspdsock:spdsock 0600 root sys 0666 root sys /dev/spdsock
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntsad:admin 0600 root sys 0666 root sys /dev/sad/admin
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntfssnap:ctl 0600 root sys 0666 root sys /dev/fssnapctl
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntfssnap:* 0600 root sys 0640 root sys /dev/fssnap/*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:dnet 0600 root sys 0666 root sys /dev/dnet
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userdnet:* 0600 root sys 0666 root sys /dev/dnet*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:elxl 0600 root sys 0666 root sys /dev/elxl
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntelxl:* 0600 root sys 0666 root sys /dev/elxl*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:iprb 0600 root sys 0666 root sys /dev/iprb
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox Useriprb:* 0600 root sys 0666 root sys /dev/iprb*
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox Userclone:pcelx 0600 root sys 0666 root sys /dev/pcelx
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox Userpcelx:* 0600 root sys 0666 root sys /dev/pcelx*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:spwr 0600 root sys 0666 root sys /dev/spwr
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userspwr:* 0600 root sys 0666 root sys /dev/spwr*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntcpc:* 0600 root sys 0666 root sys /devices/pseudo/cpc*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntipf:* 0600 root sys 0666 root sys /dev/ipf
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userpfil:* 0600 root sys 0666 root sys /dev/pfil
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntscsi_vhci:devctl 0600 root sys 0666 root sys /devices/scsi_vhci:devctl
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userfbt:fbt 0600 root sys 0644 root sys /dev/dtrace/provider/fbt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntlockstat:* 0600 root sys 0644 root sys /dev/dtrace/provider/lockstat
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntprofile:profile 0600 root sys 0644 root sys /dev/dtrace/provider/profile
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntsdt:sdt 0600 root sys 0644 root sys /dev/dtrace/provider/sdt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntsystrace:systrace 0600 root sys 0644 root sys /dev/dtrace/provider/systrace
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:bge 0600 root sys 0666 root sys /dev/bge
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:igb 0600 root sys 0666 root sys /dev/igb
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:ixgbe 0600 root sys 0666 root sys /dev/ixgbe
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:myri10ge 0600 root sys 0666 root sys /dev/myri10ge
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:rge 0600 root sys 0666 root sys /dev/rge
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:xge 0600 root sys 0666 root sys /dev/xge
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:nge 0600 root sys 0666 root sys /dev/nge
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:chxge 0600 root sys 0666 root sys /dev/chxge
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:pcn 0600 root sys 0666 root sys /dev/pcn
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:rtls 0600 root sys 0666 root sys /dev/rtls
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:arn 0600 root sys 0666 root sys /dev/arn
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:ath 0600 root sys 0666 root sys /dev/ath
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:atu 0600 root sys 0666 root sys /dev/atu
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:ipw 0600 root sys 0666 root sys /dev/ipw
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:iwh 0600 root sys 0666 root sys /dev/iwh
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:iwi 0600 root sys 0666 root sys /dev/iwi
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:iwk 0600 root sys 0666 root sys /dev/iwk
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:pcwl 0600 root sys 0666 root sys /dev/pcwl
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:pcan 0600 root sys 0666 root sys /dev/pcan
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:ral 0600 root sys 0666 root sys /dev/ral
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:rtw 0600 root sys 0666 root sys /dev/rtw
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:rum 0600 root sys 0666 root sys /dev/rum
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:rwd 0600 root sys 0666 root sys /dev/rwd
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:rwn 0600 root sys 0666 root sys /dev/rwn
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:uath 0600 root sys 0666 root sys /dev/uath
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:ural 0600 root sys 0666 root sys /dev/ural
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:urtw 0600 root sys 0666 root sys /dev/urtw
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:wpi 0600 root sys 0666 root sys /dev/wpi
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:zyd 0600 root sys 0666 root sys /dev/zyd
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:afe 0600 root sys 0666 root sys /dev/afe
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:dmfe 0600 root sys 0666 root sys /dev/dmfe
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:mxfe 0600 root sys 0666 root sys /dev/mxfe
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntbge:* 0600 root sys 0666 root sys /dev/bge*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntigb:* 0600 root sys 0666 root sys /dev/igb*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntixgbe:* 0600 root sys 0666 root sys /dev/ixgbe*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntmyri10ge:* 0600 root sys 0666 root sys /dev/myri10ge*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userrge:* 0600 root sys 0666 root sys /dev/rge*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userxge:* 0600 root sys 0666 root sys /dev/xge*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntnge:* 0600 root sys 0666 root sys /dev/nge*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunte1000g:* 0666 root root 0666 root sys /dev/e1000g*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntchxge:* 0600 root sys 0666 root sys /dev/chxge*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntpcn:* 0600 root sys 0666 root sys /dev/pcn*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userrtls:* 0600 root sys 0666 root sys /dev/rtls*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntarn:* 0600 root sys 0666 root sys /dev/arn*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userath:* 0600 root sys 0666 root sys /dev/ath*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntatu:* 0600 root sys 0666 root sys /dev/atu*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntipw:* 0600 root sys 0666 root sys /dev/ipw*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntiwh:* 0600 root sys 0666 root sys /dev/iwh*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Useriwi:* 0600 root sys 0666 root sys /dev/iwi*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntiwk:* 0600 root sys 0666 root sys /dev/iwk*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userpcwl:* 0600 root sys 0666 root sys /dev/pcwl*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntpcan:* 0600 root sys 0666 root sys /dev/pcan*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntral:* 0600 root sys 0666 root sys /dev/ral*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntrtw:* 0600 root sys 0666 root sys /dev/rtw*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntrum:* 0600 root sys 0666 root sys /dev/rum*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntrwd:* 0600 root sys 0666 root sys /dev/rwd*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userrwn:* 0600 root sys 0666 root sys /dev/rwn*
9d557856c2a19ec95ee73245f60a92f8675cf5baTinderbox Useruath:* 0600 root sys 0666 root sys /dev/uath*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntural:* 0600 root sys 0666 root sys /dev/ural*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunturtw:* 0600 root sys 0666 root sys /dev/urtw*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntwpi:* 0600 root sys 0666 root sys /dev/wpi*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntzyd:* 0600 root sys 0666 root sys /dev/zyd*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userafe:* 0600 root sys 0666 root sys /dev/afe*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntdmfe:* 0600 root sys 0666 root sys /dev/dmfe*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntmxfe:* 0600 root sys 0666 root sys /dev/mxfe*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntballoon:* 0600 root sys 0444 root sys /dev/xen/balloon
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntdomcaps:* 0600 root sys 0444 root sys /dev/xen/domcaps
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userevtchn:* 0600 root sys 0666 root sys /dev/xen/evtchn
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntprivcmd:* 0600 root sys 0666 root sys /dev/xen/privcmd
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userxenbus:* 0600 root sys 0666 root sys /dev/xen/xenbus
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntxpvtap:* 0600 root sys 0666 root sys /devices/xpvd/xpvtap*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserEOF
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User}
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# If an entry in /etc/minor_perm needs to be deleted, identify
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# the entry in the list copied to /etc/delete.$$ by this function.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# The fields are:
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# <device>:<minor> <optional list of logical devices to be deleted>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usermake_delete_list()
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User{
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usercat > /tmp/delete.$$ << EOF
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntrip:rawip
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntconsfb:consfb
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:el
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:elx
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:sle
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:sie
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:sp
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:ip
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:icmp
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:udp
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:tcp
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:rts
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:arp
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:ipsecah
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:ipsecesp
e2b184f84e846bbcb764b6f0aef5dcd583d3d7a1Tinderbox Userclone:keysock
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:smc
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:tr
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:sbpro
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntelx:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntsbpro:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntwin:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntcmtp:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntprofile:profile
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntasy:[a-z]
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntasy:[a-z],cu
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunti2o_bs:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntvni:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan HuntEOF
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt}
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# If an entry needs to be added to /etc/minor_perm, add the first
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# field of the entry to the list created by this function. The
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# remainder of the entry will be extracted from the /etc/minor_perm
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox User# in the package being installed, so it is not necessary to supply
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# it here.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usermake_add_list()
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt{
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntcat > /tmp/add.$$ << EOF
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntvol:volctl
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:llc1
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usertnf:tnfctl
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usertnf:tnfmap
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntst:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntpm:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntdevinfo:devinfo
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntopeneepr:openprom
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userwc:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userip:ip
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntip6:ip6
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntipnet:lo0
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usericmp:icmp
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usericmp6:icmp6
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntudp:udp
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntudp6:udp6
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usertcp:tcp
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usertcp6:tcp6
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntrts:rts
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntarp:arp
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userpoll:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userpool:pool
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntpool:poolctl
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntcpc:shared
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usersysmsg:msglog
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usersysmsg:sysmsg
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntipsecah:ipsecah
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntipsecesp:ipsecesp
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntkeysock:keysock
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userspdsock:spdsock
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userdevinfo:devinfo,ro
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntlofi:*
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox Userlofi:ctl
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usersgen:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userfssnap:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntfssnap:ctl
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntrsm:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntrandom:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usermm:allkmem
0226754d9e537fd56b690d5890cfe215a6c59f89Tinderbox Userclone:dnet
0226754d9e537fd56b690d5890cfe215a6c59f89Tinderbox Userdnet:*
0226754d9e537fd56b690d5890cfe215a6c59f89Tinderbox Userclone:elxl
0226754d9e537fd56b690d5890cfe215a6c59f89Tinderbox Userelxl:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:ibd
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntibd:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:iprb
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntiprb:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:pcelx
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userpcelx:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:spwr
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntspwr:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usersysevent:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userramdisk:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntramdisk:ctl
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox Usercryptoadm:cryptoadm
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox Usercrypto:crypto
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userdtrace:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userfasttrap:fasttrap
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntipf:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntpfil:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntbl:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntsctp:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntsctp6:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntdlpistub:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntcpuid:self
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:bge
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:igb
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:ixgbe
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:myri10ge
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:rge
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:xge
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:nge
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:e1000g
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:chxge
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:pcn
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:rtls
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:arn
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:ath
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:atu
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:ipw
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:iwh
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:iwi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:iwk
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:pcwl
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:pcan
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:ral
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:rtw
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:rum
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:rwd
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:rwn
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:uath
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:ural
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:urtw
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:wpi
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:zyd
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:afe
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:dmfe
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:mxfe
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntbge:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntigb:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntixgbe:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntmyri10ge:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userrge:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userxge:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntnge:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunte1000g:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userchxge:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userpcn:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntrtls:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntarn:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userath:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntatu:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Useripw:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntiwh:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntiwi:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntiwk:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntpcwl:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntpcan:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntral:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userrtw:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntrum:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntrwd:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntrwn:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntuath:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntural:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userurtw:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userwpi:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntzyd:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntafe:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntdmfe:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntmxfe:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userbmc:bmc
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userdld:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntaggr:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntsmbios:smbios
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntzfs:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntzfs:zfs
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntscsi_vhci:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userkssl:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userfbt:fbt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntprofile:profile
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntsdt:sdt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntsoftmac:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntsystrace:systrace
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntlx_ptm:lx_ptmajor
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userlx_systrace:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userphysmem:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntasy:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntasy:*,cu
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntucode:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntacpi_drv:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usersmbsrv:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Uservscan:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntnsmb:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntballoon:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntdomcaps:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntevtchn:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntprivcmd:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntxenbus:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntfm:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntamd_iommu:*
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntxpvtap:*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userclone:bridge
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserEOF
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt}
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserPATH="/sbin:/usr/sbin:/usr/bin:/usr/sadm/install/bin"
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Userexport PATH
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User# Internal routine to create a sed script which can be used to
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User# escape all shell globbing metacharacters in a path.
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox Usercreate_esc_sedscript()
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User{
d7a61cfbe56ebfa1682e949e48b4d08840234d8fTinderbox Usercat > /tmp/esc.sed.$$ << EOF
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox Users/\*/\\\\*/g
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox Users/\?/\\\\?/g
d7a61cfbe56ebfa1682e949e48b4d08840234d8fTinderbox Users/\[/\\\\[/g
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox Users/\]/\\\\]/g
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox UserEOF
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox User}
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox User
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox User# Internal routine to convert an entry in a /tmp/chwhatever.$$ file to
d7a61cfbe56ebfa1682e949e48b4d08840234d8fTinderbox User# an appropriately escaped pattern which can be used to grep into minor_perm.
832fa787d4a13fa89d64f868e51016ff4adb0d89Tinderbox User
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox Userentry2pattern()
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox User{
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox User # the first argument is the 'key' field from the change file.
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox User # entries can contain shell globbing characters to match
832fa787d4a13fa89d64f868e51016ff4adb0d89Tinderbox User # several devices - hence all the palaver below.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User printf '%s' `echo "$1" | sed \
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User -e 's/\*/\\\\*/g' -e 's/\?/\\\\?/g' \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt -e 's/\./\\\\./g' -e 's/\[/\\\\[/g' \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt -e 's/\]/\\\\]/g'`
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User shift
6758b59e57af88bdf466e63c0856043df44f8dd0Tinderbox User
6758b59e57af88bdf466e63c0856043df44f8dd0Tinderbox User # the remaining optional arguments are tokens separated by white-space
6758b59e57af88bdf466e63c0856043df44f8dd0Tinderbox User
6758b59e57af88bdf466e63c0856043df44f8dd0Tinderbox User if [ $# = 0 ] ; then
6758b59e57af88bdf466e63c0856043df44f8dd0Tinderbox User printf '[ \t]'
dec590a3deb8e87380a8bd3a77d535dba3729bf6Tinderbox User else
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox User while [ -n "$1" ]
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox User do
dec590a3deb8e87380a8bd3a77d535dba3729bf6Tinderbox User printf '[ \t][ \t]*%s' $1
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User shift
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt done
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt printf '[ \t]*$'
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt}
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntwhile read src dest
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userdo
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User if [ ! -f $dest ] ; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt cp $src $dest
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt else
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt rm -f /tmp/*.$$
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User create_esc_sedscript
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User make_chattr_list
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt make_delete_list
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt make_add_list
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt #
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # Process the list of devices whose attributes are to be
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # changed. Find those that actually need to be
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # applied to the file. For each change that needs
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # to be applied, add an entry for it to the sed
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # script that will eventually be applied to the
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # currently-installed /etc/minor_perm file. Also,
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # add an entry to the /tmp/chdevs.$$ file, which
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # contains the list of logical names of devices
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # whose permissions need to be changed.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User #
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt cat /tmp/chattr.$$ | \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt while read key oldp oldu oldg newp newu newg chdevs
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt do
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt do_chdevs=no
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User #
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # First determine whether the device entry
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # is already in the file, but with the old
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # permissions. If so, the entry needs to be
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # modified and the devices in the chdevs list
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # need to have their permissions and ownerships
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # changed.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt #
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt grepstr=`entry2pattern "${key}" $oldp $oldu $oldg`
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if grep "$grepstr" $dest > /dev/null 2>&1; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt echo "s/${grepstr}/$key $newp $newu $newg/" \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt >> /tmp/sedscript.$$
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt do_chdevs=yes
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt #
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # Now determine whether the device entry is
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # in the file at all. If not, it is a new
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # entry, but there may already be devices
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # on the system whose permissions need to
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # be changed.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt #
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User grepstr=`entry2pattern "${key}"`
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User grep "${grepstr}" $dest > /dev/null 2>&1
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if [ $? != 0 ] ; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt do_chdevs=yes
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User if [ $do_chdevs = yes -a "$chdevs" != "" ] ; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt xchdevs=`echo "$chdevs" | \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt sed -f /tmp/esc.sed.$$`
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt for m in $xchdevs ; do
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt echo "$m" $oldp $oldu $oldg \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt $newp $newu $newg >> /tmp/chdevs.$$
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User done
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User fi
e285c11870c6263cd79b418e104c7eb3e2d96952Tinderbox User done
46472a450e043434d78fa18edc73bca8c47f3981Tinderbox User
46472a450e043434d78fa18edc73bca8c47f3981Tinderbox User # sort the "change attributes" list
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if [ -s /tmp/chdevs.$$ ] ; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt sort -u /tmp/chdevs.$$ > /tmp/tmp.$$
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User mv /tmp/tmp.$$ /tmp/chdevs.$$
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt #
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # Process the list of devices to be deleted.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # Find those that actually need to be deleted
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # from the file. For each entry to be deleted,
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # add an entry for it to the sed script that will
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # eventually be applied to the currently-installed
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # /etc/minor_perm file. Also, add an entry to the
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # /tmp/deldevs.$$ file, which contains the list of
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # logical names of devices to be deleted.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt #
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt cat /tmp/delete.$$ | while read key deldevs
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt do
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User grepstr=`entry2pattern "${key}"`
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if grep "$grepstr" $dest > /dev/null 2>&1; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt echo "/${grepstr}/d" >> /tmp/sedscript.$$
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if [ "$deldevs" != "" ] ; then
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User xdeldevs=`echo "$deldevs" | \
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User sed -f /tmp/esc.sed.$$`
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt for m in $xdeldevs ; do
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt echo "$m" >> /tmp/deldevs.$$
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt done
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User done
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User if [ -s /tmp/deldevs.$$ ] ; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt sort -u /tmp/deldevs.$$ > /tmp/tmp.$$
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt mv /tmp/tmp.$$ /tmp/deldevs.$$
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User #
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # Apply the sed script possibly built above to the
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # currently-installed /etc/minor_perm file.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt #
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User if [ -s /tmp/sedscript.$$ ] ; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt sed -f /tmp/sedscript.$$ $dest > /tmp/tmp.$$
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt cp /tmp/tmp.$$ $dest
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # For all entries in minor_perm whose attributes had
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # to be corrected, correct the relevant attributes of the
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # already-existing devices that correspond to those
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # entries.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User #
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if [ -s /tmp/chdevs.$$ -a "$PKG_INSTALL_ROOT" != "" -a \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt "$PKG_INSTALL_ROOT" != "/" ] ; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt cat /tmp/chdevs.$$ |\
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User while read device oldp oldu oldg newp newu newg
a179cbdf652095d00e7774320592f25eab0210d8Tinderbox User do
a179cbdf652095d00e7774320592f25eab0210d8Tinderbox User #
a179cbdf652095d00e7774320592f25eab0210d8Tinderbox User # Note that we take pains -only- to change
a179cbdf652095d00e7774320592f25eab0210d8Tinderbox User # the permission/ownership of devices that
820739d918f8c0c5d89e0f40bdc64faa5c03e569Tinderbox User # have kept their original permissions.
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox User #
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox User for dev in $PKG_INSTALL_ROOT/$device; do
820739d918f8c0c5d89e0f40bdc64faa5c03e569Tinderbox User find $dev -follow -perm $oldp -exec \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt chmod $newp $dev \; >/dev/null 2>&1
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User find $dev -follow -user $oldu -exec \
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User chown $newu $dev \; >/dev/null 2>&1
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt find $dev -follow -group $oldg -exec \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt chgrp $newg $dev \; >/dev/null 2>&1
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User done
46472a450e043434d78fa18edc73bca8c47f3981Tinderbox User done
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User fi
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User #
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # For all entries in minor_perm that were deleted,
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # remove the /dev entries that point to device nodes
46472a450e043434d78fa18edc73bca8c47f3981Tinderbox User # that correspond to those entries.
46472a450e043434d78fa18edc73bca8c47f3981Tinderbox User #
46472a450e043434d78fa18edc73bca8c47f3981Tinderbox User if [ -s /tmp/deldevs.$$ -a "$PKG_INSTALL_ROOT" != "" -a \
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User "$PKG_INSTALL_ROOT" != "/" ] ; then
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User cat /tmp/deldevs.$$ | while read device
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt do
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt rm -f $PKG_INSTALL_ROOT/$device
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User done
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User cat /tmp/add.$$ | while read key
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt do
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User grepstr=`entry2pattern "${key}"`
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User grep "$grepstr" $dest > /dev/null 2>&1
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if [ $? != 0 ] ; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt grep "$grepstr" $src >> $dest
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt done
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt rm -f /tmp/*.$$
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntdone
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userexit 0
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User