i.minorperm_i386 revision 7eea693d6b672899726e75993fddc4e95b52647f
48c0c81cd6fabac9d3386406d97633780365b839coar#!/bin/sh
56b2562cb4041a21bc313fde3204beabdb758800jwoolley#
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# CDDL HEADER START
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj#
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# The contents of this file are subject to the terms of the
8163c8f6e2a9a8e4aba318d874c54a3155d57e21jerenkrantz# Common Development and Distribution License (the "License").
0bd0176ce9f4321eeb506aa372d0bcc84befbf4cstriker# You may not use this file except in compliance with the License.
d8028365066fca602bf35d014530a1802114378crbb#
c25203fdca093d4504c51b4cd974ff60d5aa4fb1wrowe# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
c25203fdca093d4504c51b4cd974ff60d5aa4fb1wrowe# or http://www.opensolaris.org/os/licensing.
c25203fdca093d4504c51b4cd974ff60d5aa4fb1wrowe# See the License for the specific language governing permissions
d89c116f82699294ca744125723651c554bc5925wrowe# and limitations under the License.
4214e98fc9045e5010e66f9a967bd6d68f40d342aaron#
8721697e2aece27b0e738519329f7976c72b27bfjerenkrantz# When distributing Covered Code, include this CDDL HEADER in each
c25203fdca093d4504c51b4cd974ff60d5aa4fb1wrowe# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
91cacb801f6c0215b38322f6d2fc58cbfedfecfbjerenkrantz# If applicable, add the following below this CDDL HEADER, with the
91cacb801f6c0215b38322f6d2fc58cbfedfecfbjerenkrantz# fields enclosed by brackets "[]" replaced with your own identifying
df14f0d3a5191cdd7c4bb5b03acd135d43a6f51brbb# information: Portions Copyright [yyyy] [name of copyright owner]
df14f0d3a5191cdd7c4bb5b03acd135d43a6f51brbb#
ab71b233b3a36489e44a7b061c48293be0b17788jwoolley# CDDL HEADER END
571760de5e60c0b459cb11be45507b923cd023eejwoolley#
571760de5e60c0b459cb11be45507b923cd023eejwoolley#
9180a5933673ffb1af633c255ceee029340f3b1erbb# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
bcb6e1be6041dfeb549c8ea8d37f97ad4e90a0c3rbb# Use is subject to license terms.
9bd71e35f5d26d26d23fe3a677401828e842ed72wrowe#
2900ab946a2d76b73a14cebfe2985d253f01c967stoddard
a548c09e6a8ca1b059d0e93b5256c6ccb2b3c3cdrbb#
a548c09e6a8ca1b059d0e93b5256c6ccb2b3c3cdrbb# NOTE: When a change is made to the source file for
a548c09e6a8ca1b059d0e93b5256c6ccb2b3c3cdrbb# /etc/minor_perm, a corresponding change must be made to
b876b7bcf0ce3d232da723246d709e8dbbfe8762rbb# this class-action script.
cf6bf6c34c936e6a6fe731dbce4a5c3c8bf8e9a3gstein#
35330e0d79ceb8027223bbb8330a381b1f989d6etrawick# - If an existing entry in minor_perm is having its
6f6f4a4bca281779d196acbdd5c017bb90858305trawick# attributes e.g. permissions, ownership changed,
8dd4618c4709236b4ea297d7250d282e463ce2d8rbb# add it to the list produced by make_chattr_list below.
09bd86d0db1114ee23eda0a6eb76ca055877a1cftrawick#
2deb319e6b3de239f45c16a3e9e836d44f1f7108rbb# - If an existing entry must be deleted, add it to
bd929c73ef04789b7183b840d8db6e01d03a4d86rbb# the list produced by make_delete_list below.
70f6f32765cfaadd6da8de6f0fea97ddd72d8fadmanoj#
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# - If a new entry must be added to the file, add it to the
af4c982a7cf4515f124935f99a329744035fc699slive# list produced by make_add_list.
af4c982a7cf4515f124935f99a329744035fc699slive#
af4c982a7cf4515f124935f99a329744035fc699slive# - If a new entry is being added to minor_perm, but there
af4c982a7cf4515f124935f99a329744035fc699slive# may already be devices of that name on the system (e.g.
af4c982a7cf4515f124935f99a329744035fc699slive# we used the system default permissions in a previous release),
af4c982a7cf4515f124935f99a329744035fc699slive# and those old devices now need to have their attributes changed,
af4c982a7cf4515f124935f99a329744035fc699slive# add it to the make_chattr_list AND the make_add_list lists
10270f6f94b2069d0d357805c140a9897449b9ccianh#
4b62424416882687387923b3130b96241503cbe0jerenkrantz
5ca8e11fadb6f7a8d9d0367c1800205c99d4bcd6jerenkrantz#
363e9e52888cd7d75325b1ab90ac928f32d5af44jwoolley# If an entry in /etc/minor_perm needs to have its attributes
363e9e52888cd7d75325b1ab90ac928f32d5af44jwoolley# changed, identify the entry in the list copied to /etc/chattr.$$
363e9e52888cd7d75325b1ab90ac928f32d5af44jwoolley# by this function. The fields are:
5ca8e11fadb6f7a8d9d0367c1800205c99d4bcd6jerenkrantz#
45b0e1c775c1cfed6473c9e5304179ccb9609f53stoddard# <device>:<minor> <old_attrs> <new_attrs> <optional list of logical
dbec4658981e4f9127e8676457c28d42932be7cdtrawick# devices whose attributes
5221a7188270ea10c4f0f8ad0a4367638894f9fbbrianp# will need to be changed>
5221a7188270ea10c4f0f8ad0a4367638894f9fbbrianp#
5221a7188270ea10c4f0f8ad0a4367638894f9fbbrianp# where an <attribute list> := <perm> <user> <group>
d415c14da6d37345738e160f785dbe8458095068jwoolley#
d415c14da6d37345738e160f785dbe8458095068jwoolley# NOTE: this list should also contain entries for nodes that previously
d85144f90d2fb3cc27f12640011ef77ca7946dbdjwoolley# were not in /etc/minor_perm (which means the default mode of 600,
d85144f90d2fb3cc27f12640011ef77ca7946dbdjwoolley# owner/group == root/sys), but now have an entry
d85144f90d2fb3cc27f12640011ef77ca7946dbdjwoolley#
d415c14da6d37345738e160f785dbe8458095068jwoolley
d415c14da6d37345738e160f785dbe8458095068jwoolleymake_chattr_list()
d415c14da6d37345738e160f785dbe8458095068jwoolley{
56b2562cb4041a21bc313fde3204beabdb758800jwoolleycat > /tmp/chattr.$$ << EOF
d415c14da6d37345738e160f785dbe8458095068jwoolleyvol:volctl 0600 root sys 0666 root sys /dev/volctl
d415c14da6d37345738e160f785dbe8458095068jwoolleyclone:llc1 0600 root sys 0666 root sys /dev/llc1
d415c14da6d37345738e160f785dbe8458095068jwoolleylog:conslog 0620 root sys 0666 root sys /dev/conslog
d415c14da6d37345738e160f785dbe8458095068jwoolleysy:tty 0666 root sys 0666 root tty /dev/tty
d415c14da6d37345738e160f785dbe8458095068jwoolleyicmp:icmp 0600 root sys 0666 root sys /dev/rawip
d415c14da6d37345738e160f785dbe8458095068jwoolleyicmp6:icmp6 0600 root sys 0666 root sys /dev/rawip6
d415c14da6d37345738e160f785dbe8458095068jwoolleyip:ip 0660 root sys 0666 root sys /dev/ip
9fc8bca7967297a4e83f0aff24760e48d7ae8f19brianpip6:ip6 0660 root sys 0666 root sys /dev/ip6
dee038ed61c64813e50d1ed34334fe2d5ab815fcjerenkrantzrts:rts 0660 root sys 0666 root sys /dev/rts
d415c14da6d37345738e160f785dbe8458095068jwoolleykeysock:keysock 0600 root sys 0666 root sys /dev/keysock
d415c14da6d37345738e160f785dbe8458095068jwoolleyipsecah:ipsecah 0600 root sys 0666 root sys /dev/ipsecah
d415c14da6d37345738e160f785dbe8458095068jwoolleyipsecesp:ipsecesp 0600 root sys 0666 root sys /dev/ipsecesp
d415c14da6d37345738e160f785dbe8458095068jwoolleyspdsock:spdsock 0600 root sys 0666 root sys /dev/spdsock
d415c14da6d37345738e160f785dbe8458095068jwoolleysad:admin 0600 root sys 0666 root sys /dev/sad/admin
dee038ed61c64813e50d1ed34334fe2d5ab815fcjerenkrantzfssnap:ctl 0600 root sys 0666 root sys /dev/fssnapctl
dee038ed61c64813e50d1ed34334fe2d5ab815fcjerenkrantzfssnap:* 0600 root sys 0640 root sys /dev/fssnap/*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleyclone:dnet 0600 root sys 0666 root sys /dev/dnet
56b2562cb4041a21bc313fde3204beabdb758800jwoolleydnet:* 0600 root sys 0666 root sys /dev/dnet*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleyclone:elxl 0600 root sys 0666 root sys /dev/elxl
56b2562cb4041a21bc313fde3204beabdb758800jwoolleyelxl:* 0600 root sys 0666 root sys /dev/elxl*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleyclone:iprb 0600 root sys 0666 root sys /dev/iprb
56b2562cb4041a21bc313fde3204beabdb758800jwoolleyiprb:* 0600 root sys 0666 root sys /dev/iprb*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleyclone:pcelx 0600 root sys 0666 root sys /dev/pcelx
dee038ed61c64813e50d1ed34334fe2d5ab815fcjerenkrantzpcelx:* 0600 root sys 0666 root sys /dev/pcelx*
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:spwr 0600 root sys 0666 root sys /dev/spwr
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzspwr:* 0600 root sys 0666 root sys /dev/spwr*
f17588e04d2412bf1345783ed1d173322d728d6ftrawickcpc:* 0600 root sys 0666 root sys /devices/pseudo/cpc*
f17588e04d2412bf1345783ed1d173322d728d6ftrawickipf:* 0600 root sys 0666 root sys /dev/ipf
f17588e04d2412bf1345783ed1d173322d728d6ftrawickpfil:* 0600 root sys 0666 root sys /dev/pfil
f17588e04d2412bf1345783ed1d173322d728d6ftrawickscsi_vhci:devctl 0600 root sys 0666 root sys /devices/scsi_vhci:devctl
f17588e04d2412bf1345783ed1d173322d728d6ftrawickfbt:fbt 0600 root sys 0644 root sys /dev/dtrace/provider/fbt
f17588e04d2412bf1345783ed1d173322d728d6ftrawicklockstat:* 0600 root sys 0644 root sys /dev/dtrace/provider/lockstat
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewroweprofile:profile 0600 root sys 0644 root sys /dev/dtrace/provider/profile
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzsdt:sdt 0600 root sys 0644 root sys /dev/dtrace/provider/sdt
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzsystrace:systrace 0600 root sys 0644 root sys /dev/dtrace/provider/systrace
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:bge 0600 root sys 0666 root sys /dev/bge
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewroweclone:igb 0600 root sys 0666 root sys /dev/igb
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:ixgbe 0600 root sys 0666 root sys /dev/ixgbe
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:rge 0600 root sys 0666 root sys /dev/rge
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:xge 0600 root sys 0666 root sys /dev/xge
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:nge 0600 root sys 0666 root sys /dev/nge
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:chxge 0600 root sys 0666 root sys /dev/chxge
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:pcn 0600 root sys 0666 root sys /dev/pcn
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:rtls 0600 root sys 0666 root sys /dev/rtls
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:ath 0600 root sys 0666 root sys /dev/ath
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:ipw 0600 root sys 0666 root sys /dev/ipw
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:iwh 0600 root sys 0666 root sys /dev/iwh
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:iwi 0600 root sys 0666 root sys /dev/iwi
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:iwk 0600 root sys 0666 root sys /dev/iwk
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewroweclone:pcwl 0600 root sys 0666 root sys /dev/pcwl
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:pcan 0600 root sys 0666 root sys /dev/pcan
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:ral 0600 root sys 0666 root sys /dev/ral
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:rtw 0600 root sys 0666 root sys /dev/rtw
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:ural 0600 root sys 0666 root sys /dev/ural
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddardclone:wpi 0600 root sys 0666 root sys /dev/wpi
1af5c0e25a649bb298e25ddfa5418fa18bdcb107aaronclone:afe 0600 root sys 0666 root sys /dev/afe
82455c2e3b6991846fbcbf0c9e41f57dbc681217brianpclone:dmfe 0600 root sys 0666 root sys /dev/dmfe
82455c2e3b6991846fbcbf0c9e41f57dbc681217brianpclone:mxfe 0600 root sys 0666 root sys /dev/mxfe
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzbge:* 0600 root sys 0666 root sys /dev/bge*
1b3f48fd6b1ccb8745f908e40156c5a85ca3c347jerenkrantzigb:* 0600 root sys 0666 root sys /dev/igb*
b05930e6008f69bd323abe0c10f81f40ffd27983brianpixgbe:* 0600 root sys 0666 root sys /dev/ixgbe*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleyrge:* 0600 root sys 0666 root sys /dev/rge*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleyxge:* 0600 root sys 0666 root sys /dev/xge*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleynge:* 0600 root sys 0666 root sys /dev/nge*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleye1000g:* 0666 root root 0666 root sys /dev/e1000g*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleychxge:* 0600 root sys 0666 root sys /dev/chxge*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleypcn:* 0600 root sys 0666 root sys /dev/pcn*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleyrtls:* 0600 root sys 0666 root sys /dev/rtls*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleyath:* 0600 root sys 0666 root sys /dev/ath*
b05930e6008f69bd323abe0c10f81f40ffd27983brianpipw:* 0600 root sys 0666 root sys /dev/ipw*
b05930e6008f69bd323abe0c10f81f40ffd27983brianpiwh:* 0600 root sys 0666 root sys /dev/iwh*
b05930e6008f69bd323abe0c10f81f40ffd27983brianpiwi:* 0600 root sys 0666 root sys /dev/iwi*
b05930e6008f69bd323abe0c10f81f40ffd27983brianpiwk:* 0600 root sys 0666 root sys /dev/iwk*
b05930e6008f69bd323abe0c10f81f40ffd27983brianppcwl:* 0600 root sys 0666 root sys /dev/pcwl*
15304e476fb32988bf988864ddacc5375b9a6080stoddardpcan:* 0600 root sys 0666 root sys /dev/pcan*
15304e476fb32988bf988864ddacc5375b9a6080stoddardral:* 0600 root sys 0666 root sys /dev/ral*
8c8fbb8546af54582539898be704411a60058d85trawickrtw:* 0600 root sys 0666 root sys /dev/rtw*
4c7dab038d90d7feb67ef8ddbfacc77be8c9dbf0jwoolleyural:* 0600 root sys 0666 root sys /dev/ural*
4c7dab038d90d7feb67ef8ddbfacc77be8c9dbf0jwoolleywpi:* 0600 root sys 0666 root sys /dev/wpi*
4c7dab038d90d7feb67ef8ddbfacc77be8c9dbf0jwoolleyafe:* 0600 root sys 0666 root sys /dev/afe*
4c7dab038d90d7feb67ef8ddbfacc77be8c9dbf0jwoolleydmfe:* 0600 root sys 0666 root sys /dev/dmfe*
bb2a72a6e2327ae4f177c9d26e9d433033cfc27eaaronmxfe:* 0600 root sys 0666 root sys /dev/mxfe*
8c8fbb8546af54582539898be704411a60058d85trawickballoon:* 0600 root sys 0444 root sys /dev/xen/balloon
8c8fbb8546af54582539898be704411a60058d85trawickdomcaps:* 0600 root sys 0444 root sys /dev/xen/domcaps
8c8fbb8546af54582539898be704411a60058d85trawickevtchn:* 0600 root sys 0666 root sys /dev/xen/evtchn
f9b8e29cfca92cf0a996e8ab17fa1a1f447cecc7stoddardprivcmd:* 0600 root sys 0666 root sys /dev/xen/privcmd
f9b8e29cfca92cf0a996e8ab17fa1a1f447cecc7stoddardxenbus:* 0600 root sys 0666 root sys /dev/xen/xenbus
f9b8e29cfca92cf0a996e8ab17fa1a1f447cecc7stoddardxpvtap:* 0600 root sys 0666 root sys /devices/xpvd/xpvtap*
a23b1c5a74208b03884c09a6f9dd5d6c97fa6415trawickEOF
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe}
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe#
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe# If an entry in /etc/minor_perm needs to be deleted, identify
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe# the entry in the list copied to /etc/delete.$$ by this function.
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe# The fields are:
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe#
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe# <device>:<minor> <optional list of logical devices to be deleted>
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe#
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowemake_delete_list()
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe{
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowecat > /tmp/delete.$$ << EOF
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowerip:rawip
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewroweconsfb:consfb
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewroweclone:el
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewroweclone:elx
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewroweclone:sle
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewroweclone:sie
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewroweclone:sp
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewroweclone:ip
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewroweclone:icmp
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewroweclone:udp
638a9edaf48cf003cd40ac25ee8c25f572107414stoddardclone:tcp
638a9edaf48cf003cd40ac25ee8c25f572107414stoddardclone:rts
638a9edaf48cf003cd40ac25ee8c25f572107414stoddardclone:arp
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbbclone:ipsecah
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbbclone:ipsecesp
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbbclone:keysock
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbbclone:smc
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbbclone:tr
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbbclone:sbpro
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbbelx:*
1ea5221b240a8b41a07c6fb04aab5a73adcddabfaaronsbpro:*
1ea5221b240a8b41a07c6fb04aab5a73adcddabfaaronwin:*
1ea5221b240a8b41a07c6fb04aab5a73adcddabfaaroncmtp:*
1ea5221b240a8b41a07c6fb04aab5a73adcddabfaaronprofile:profile
a12f07383f9c286519fe88f559187148d5bd1c16aaronasy:[a-z]
1ea5221b240a8b41a07c6fb04aab5a73adcddabfaaronasy:[a-z],cu
1ea5221b240a8b41a07c6fb04aab5a73adcddabfaaroni2o_bs:*
5d12baef135b5d3cb94745e007a1575398469724jerenkrantzEOF
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz}
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz#
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz# If an entry needs to be added to /etc/minor_perm, add the first
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz# field of the entry to the list created by this function. The
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz# remainder of the entry will be extracted from the /etc/minor_perm
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz# in the package being installed, so it is not necessary to supply
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz# it here.
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz#
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz
5d12baef135b5d3cb94745e007a1575398469724jerenkrantzmake_add_list()
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantz{
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantzcat > /tmp/add.$$ << EOF
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantzvol:volctl
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantzclone:llc1
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantztnf:tnfctl
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantztnf:tnfmap
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantzst:*
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantzpm:*
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantzdevinfo:devinfo
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantzopeneepr:openprom
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantzwc:*
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantzip:ip
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantzip6:ip6
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantzicmp:icmp
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantzicmp6:icmp6
dc098c7ce5d36179c504d09fc722d190683d0262aaronudp:udp
dc098c7ce5d36179c504d09fc722d190683d0262aaronudp6:udp6
dc098c7ce5d36179c504d09fc722d190683d0262aarontcp:tcp
dc098c7ce5d36179c504d09fc722d190683d0262aarontcp6:tcp6
dc098c7ce5d36179c504d09fc722d190683d0262aaronrts:rts
dc098c7ce5d36179c504d09fc722d190683d0262aaronarp:arp
dc098c7ce5d36179c504d09fc722d190683d0262aaronpoll:*
364dfd4527e6ce37b828a42e2c0bbdf9ba19a9b8gregamespool:pool
364dfd4527e6ce37b828a42e2c0bbdf9ba19a9b8gregamespool:poolctl
dc098c7ce5d36179c504d09fc722d190683d0262aaroncpc:shared
0bcb1fe39dfaacf9745b6633f5cc9ebc8e2596caaaronsysmsg:msglog
0bcb1fe39dfaacf9745b6633f5cc9ebc8e2596caaaronsysmsg:sysmsg
0bcb1fe39dfaacf9745b6633f5cc9ebc8e2596caaaronipsecah:ipsecah
0bcb1fe39dfaacf9745b6633f5cc9ebc8e2596caaaronipsecesp:ipsecesp
0bcb1fe39dfaacf9745b6633f5cc9ebc8e2596caaaronkeysock:keysock
0bcb1fe39dfaacf9745b6633f5cc9ebc8e2596caaaronspdsock:spdsock
33f5961d34a8b5390cebad0543b3ebe67830e5d7jerenkrantzdevinfo:devinfo,ro
33f5961d34a8b5390cebad0543b3ebe67830e5d7jerenkrantzlofi:*
33f5961d34a8b5390cebad0543b3ebe67830e5d7jerenkrantzlofi:ctl
33f5961d34a8b5390cebad0543b3ebe67830e5d7jerenkrantzsgen:*
33f5961d34a8b5390cebad0543b3ebe67830e5d7jerenkrantzfssnap:*
33f5961d34a8b5390cebad0543b3ebe67830e5d7jerenkrantzfssnap:ctl
ff42f83cbf31893bcde9712332a8e5ee970f6a74trawickrsm:*
ff42f83cbf31893bcde9712332a8e5ee970f6a74trawickrandom:*
ff42f83cbf31893bcde9712332a8e5ee970f6a74trawickmm:allkmem
33f5961d34a8b5390cebad0543b3ebe67830e5d7jerenkrantzclone:dnet
54e1babd5a5a56c576eeeace54110150769cc916coardnet:*
54e1babd5a5a56c576eeeace54110150769cc916coarclone:elxl
54e1babd5a5a56c576eeeace54110150769cc916coarelxl:*
54e1babd5a5a56c576eeeace54110150769cc916coarclone:ibd
54e1babd5a5a56c576eeeace54110150769cc916coaribd:*
54e1babd5a5a56c576eeeace54110150769cc916coarclone:iprb
54e1babd5a5a56c576eeeace54110150769cc916coariprb:*
54e1babd5a5a56c576eeeace54110150769cc916coarclone:pcelx
54e1babd5a5a56c576eeeace54110150769cc916coarpcelx:*
54e1babd5a5a56c576eeeace54110150769cc916coarclone:spwr
54e1babd5a5a56c576eeeace54110150769cc916coarspwr:*
54e1babd5a5a56c576eeeace54110150769cc916coarsysevent:*
54e1babd5a5a56c576eeeace54110150769cc916coarramdisk:*
949aa7bba7f804faa8e6b08cad42a98fc0255d85jerenkrantzramdisk:ctl
949aa7bba7f804faa8e6b08cad42a98fc0255d85jerenkrantzcryptoadm:cryptoadm
949aa7bba7f804faa8e6b08cad42a98fc0255d85jerenkrantzcrypto:crypto
949aa7bba7f804faa8e6b08cad42a98fc0255d85jerenkrantzdtrace:*
949aa7bba7f804faa8e6b08cad42a98fc0255d85jerenkrantzfasttrap:fasttrap
949aa7bba7f804faa8e6b08cad42a98fc0255d85jerenkrantzipf:*
e0427bf8e52a8fb920cb8b6adb5cdb3b6535b7fecoarpfil:*
e0427bf8e52a8fb920cb8b6adb5cdb3b6535b7fecoarbl:*
07021d9f405849228b859d9fb4b877f20e4fbba3jerenkrantzsctp:*
07021d9f405849228b859d9fb4b877f20e4fbba3jerenkrantzsctp6:*
07021d9f405849228b859d9fb4b877f20e4fbba3jerenkrantzvni:*
07021d9f405849228b859d9fb4b877f20e4fbba3jerenkrantzcpuid:self
f126ee03179eb54308118f1ec3de5a7b461685d8aaronclone:bge
f126ee03179eb54308118f1ec3de5a7b461685d8aaronclone:igb
f126ee03179eb54308118f1ec3de5a7b461685d8aaronclone:ixgbe
f126ee03179eb54308118f1ec3de5a7b461685d8aaronclone:rge
f126ee03179eb54308118f1ec3de5a7b461685d8aaronclone:xge
f126ee03179eb54308118f1ec3de5a7b461685d8aaronclone:nge
f126ee03179eb54308118f1ec3de5a7b461685d8aaronclone:e1000g
f126ee03179eb54308118f1ec3de5a7b461685d8aaronclone:chxge
f126ee03179eb54308118f1ec3de5a7b461685d8aaronclone:pcn
f126ee03179eb54308118f1ec3de5a7b461685d8aaronclone:rtls
f126ee03179eb54308118f1ec3de5a7b461685d8aaronclone:ath
f126ee03179eb54308118f1ec3de5a7b461685d8aaronclone:ipw
f126ee03179eb54308118f1ec3de5a7b461685d8aaronclone:iwh
f126ee03179eb54308118f1ec3de5a7b461685d8aaronclone:iwi
f126ee03179eb54308118f1ec3de5a7b461685d8aaronclone:iwk
109faf633e12ab0bbdd602c7addc795cce59e8addreidclone:pcwl
109faf633e12ab0bbdd602c7addc795cce59e8addreidclone:pcan
109faf633e12ab0bbdd602c7addc795cce59e8addreidclone:ral
109faf633e12ab0bbdd602c7addc795cce59e8addreidclone:rtw
109faf633e12ab0bbdd602c7addc795cce59e8addreidclone:ural
109faf633e12ab0bbdd602c7addc795cce59e8addreidclone:wpi
109faf633e12ab0bbdd602c7addc795cce59e8addreidclone:afe
109faf633e12ab0bbdd602c7addc795cce59e8addreidclone:dmfe
109faf633e12ab0bbdd602c7addc795cce59e8addreidclone:mxfe
109faf633e12ab0bbdd602c7addc795cce59e8addreidbge:*
109faf633e12ab0bbdd602c7addc795cce59e8addreidigb:*
109faf633e12ab0bbdd602c7addc795cce59e8addreidixgbe:*
109faf633e12ab0bbdd602c7addc795cce59e8addreidrge:*
109faf633e12ab0bbdd602c7addc795cce59e8addreidxge:*
4ca13a5e126946272f02637e268a8e09193c553ecoarnge:*
4ca13a5e126946272f02637e268a8e09193c553ecoare1000g:*
4ca13a5e126946272f02637e268a8e09193c553ecoarchxge:*
4ca13a5e126946272f02637e268a8e09193c553ecoarpcn:*
4ca13a5e126946272f02637e268a8e09193c553ecoarrtls:*
48c0c81cd6fabac9d3386406d97633780365b839coarath:*
48c0c81cd6fabac9d3386406d97633780365b839coaripw:*
48c0c81cd6fabac9d3386406d97633780365b839coariwh:*
48c0c81cd6fabac9d3386406d97633780365b839coariwi:*
48c0c81cd6fabac9d3386406d97633780365b839coariwk:*
48c0c81cd6fabac9d3386406d97633780365b839coarpcwl:*
48c0c81cd6fabac9d3386406d97633780365b839coarpcan:*
e0427bf8e52a8fb920cb8b6adb5cdb3b6535b7fecoarral:*
4ca13a5e126946272f02637e268a8e09193c553ecoarrtw:*
b84f66c93f820824b1d5455181f55598b766319cwroweural:*
b84f66c93f820824b1d5455181f55598b766319cwrowewpi:*
b84f66c93f820824b1d5455181f55598b766319cwroweafe:*
b84f66c93f820824b1d5455181f55598b766319cwrowedmfe:*
7fe18c15b669db9d191859695901dc4fcf3829dawrowemxfe:*
7fe18c15b669db9d191859695901dc4fcf3829dawrowebmc:bmc
7fe18c15b669db9d191859695901dc4fcf3829dawrowedld:*
7fe18c15b669db9d191859695901dc4fcf3829dawroweaggr:*
b84f66c93f820824b1d5455181f55598b766319cwrowesmbios:smbios
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowezfs:*
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowezfs:zfs
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowescsi_vhci:*
d24a92b8a8315e9a266ba84cc2a996d49dd546c1stoddardkssl:*
48c0c81cd6fabac9d3386406d97633780365b839coarfbt:fbt
48c0c81cd6fabac9d3386406d97633780365b839coarprofile:profile
48c0c81cd6fabac9d3386406d97633780365b839coarsdt:sdt
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowesoftmac:*
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowesystrace:systrace
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowelx_ptm:lx_ptmajor
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowelx_systrace:*
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowephysmem:*
60d567a0c2aae815ee6fc20c0d65032bea52c92cwroweasy:*
60d567a0c2aae815ee6fc20c0d65032bea52c92cwroweasy:*,cu
addbf2b3199f23773bdcaf7263acfcafe621a3bewroweucode:*
addbf2b3199f23773bdcaf7263acfcafe621a3bewroweacpi_drv:*
addbf2b3199f23773bdcaf7263acfcafe621a3bewrowesmbsrv:*
addbf2b3199f23773bdcaf7263acfcafe621a3bewrowevscan:*
7239216999e746bb4fc7671621becea33c5c1c87stoddardnsmb:*
19cbe4d7b7c931723e7249de6829bf965a1fee72stoddardballoon:*
19cbe4d7b7c931723e7249de6829bf965a1fee72stoddarddomcaps:*
b187d568e1507d75139ebc13ca945b38fc05d55cstoddardevtchn:*
b187d568e1507d75139ebc13ca945b38fc05d55cstoddardprivcmd:*
b187d568e1507d75139ebc13ca945b38fc05d55cstoddardxenbus:*
1c6fb1e726ce22694de0e9a957adb67b929e5d4fstoddardfm:*
1c6fb1e726ce22694de0e9a957adb67b929e5d4fstoddardamd_iommu:*
a5ed555df952c85bc1b179f5981e8a6c54ba16e6stoddardxpvtap:*
d2f8b010487ffa990a9c268df5a25579e7291bcdrbbEOF
d2f8b010487ffa990a9c268df5a25579e7291bcdrbb}
a5ed555df952c85bc1b179f5981e8a6c54ba16e6stoddard
0bff2f28ef945280c17099c142126178a78e1e54manojPATH="/sbin:/usr/sbin:/usr/bin:/usr/sadm/install/bin"
0bff2f28ef945280c17099c142126178a78e1e54manojexport PATH
0bff2f28ef945280c17099c142126178a78e1e54manoj
1e585ba09ea32272e63c4c39c35491e975d21d98stoddard# Internal routine to create a sed script which can be used to
0bff2f28ef945280c17099c142126178a78e1e54manoj# escape all shell globbing metacharacters in a path.
35330e0d79ceb8027223bbb8330a381b1f989d6etrawick
0bff2f28ef945280c17099c142126178a78e1e54manojcreate_esc_sedscript()
9c09943bad734ebd5c7cc10bd6d63b75c4c6e056stoddard{
ff849e4163ed879288f0df15f78b6c9d278ec804fanfcat > /tmp/esc.sed.$$ << EOF
ff849e4163ed879288f0df15f78b6c9d278ec804fanfs/\*/\\\\*/g
447c6ce3ff08073c44f6785d5256271fcb877512wrowes/\?/\\\\?/g
e0427bf8e52a8fb920cb8b6adb5cdb3b6535b7fecoars/\[/\\\\[/g
e0427bf8e52a8fb920cb8b6adb5cdb3b6535b7fecoars/\]/\\\\]/g
e0427bf8e52a8fb920cb8b6adb5cdb3b6535b7fecoarEOF
e0427bf8e52a8fb920cb8b6adb5cdb3b6535b7fecoar}
6758b07b4b79f898b0f56375016cea7da0bfb495wrowe
6758b07b4b79f898b0f56375016cea7da0bfb495wrowe# Internal routine to convert an entry in a /tmp/chwhatever.$$ file to
6758b07b4b79f898b0f56375016cea7da0bfb495wrowe# an appropriately escaped pattern which can be used to grep into minor_perm.
7fe18c15b669db9d191859695901dc4fcf3829dawrowe
db3ccce11afac4fc1d4f51a65424412f7480c46cgsteinentry2pattern()
dd4713dc5b186f4d1be7b88f86608fdb84cbe5d5gstein{
48c0c81cd6fabac9d3386406d97633780365b839coar # the first argument is the 'key' field from the change file.
48c0c81cd6fabac9d3386406d97633780365b839coar # entries can contain shell globbing characters to match
48c0c81cd6fabac9d3386406d97633780365b839coar # several devices - hence all the palaver below.
48c0c81cd6fabac9d3386406d97633780365b839coar
db3ccce11afac4fc1d4f51a65424412f7480c46cgstein printf '%s' `echo "$1" | sed \
79d5106a9b65b956d646f5daae4b94bc79e315b8trawick -e 's/\*/\\\\*/g' -e 's/\?/\\\\?/g' \
79d5106a9b65b956d646f5daae4b94bc79e315b8trawick -e 's/\./\\\\./g' -e 's/\[/\\\\[/g' \
79d5106a9b65b956d646f5daae4b94bc79e315b8trawick -e 's/\]/\\\\]/g'`
cf6bf6c34c936e6a6fe731dbce4a5c3c8bf8e9a3gstein shift
cf6bf6c34c936e6a6fe731dbce4a5c3c8bf8e9a3gstein
cf6bf6c34c936e6a6fe731dbce4a5c3c8bf8e9a3gstein # the remaining optional arguments are tokens separated by white-space
6fa71a1bd8c61518b05f5798a7a1594c270e78afrbb
93c5cba06b623ebe8e4372e886eece12d9a80c3egstein if [ $# = 0 ] ; then
14cccaddba3a9263cf0d0ddc311e18f3e3dc9b0fgstein printf '[ \t]'
14cccaddba3a9263cf0d0ddc311e18f3e3dc9b0fgstein else
14cccaddba3a9263cf0d0ddc311e18f3e3dc9b0fgstein while [ -n "$1" ]
14cccaddba3a9263cf0d0ddc311e18f3e3dc9b0fgstein do
14cccaddba3a9263cf0d0ddc311e18f3e3dc9b0fgstein printf '[ \t][ \t]*%s' $1
14cccaddba3a9263cf0d0ddc311e18f3e3dc9b0fgstein shift
823c303d33c9e637a83d82208bcbafaf5f532d7bgstein done
823c303d33c9e637a83d82208bcbafaf5f532d7bgstein printf '[ \t]*$'
e636eba7474e0010b5c7198af1c2fe5ad8652dbbmanoj fi
e636eba7474e0010b5c7198af1c2fe5ad8652dbbmanoj}
e636eba7474e0010b5c7198af1c2fe5ad8652dbbmanoj
281da4c02cf40c663298ded7e4e5b913a8f8b814gsteinwhile read src dest
281da4c02cf40c663298ded7e4e5b913a8f8b814gsteindo
2f728b2e8555fee1b7cc11e886488692f2575fbddougm if [ ! -f $dest ] ; then
2f728b2e8555fee1b7cc11e886488692f2575fbddougm cp $src $dest
2f728b2e8555fee1b7cc11e886488692f2575fbddougm else
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe rm -f /tmp/*.$$
48c0c81cd6fabac9d3386406d97633780365b839coar create_esc_sedscript
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe make_chattr_list
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe make_delete_list
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe make_add_list
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe #
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe # Process the list of devices whose attributes are to be
27757f6699a924d4b493a1b6cceb27df27a43287dreid # changed. Find those that actually need to be
27757f6699a924d4b493a1b6cceb27df27a43287dreid # applied to the file. For each change that needs
27757f6699a924d4b493a1b6cceb27df27a43287dreid # to be applied, add an entry for it to the sed
21e01f13f717faeca3e498d7d9c9b4d3af98ae27trawick # script that will eventually be applied to the
21e01f13f717faeca3e498d7d9c9b4d3af98ae27trawick # currently-installed /etc/minor_perm file. Also,
21e01f13f717faeca3e498d7d9c9b4d3af98ae27trawick # add an entry to the /tmp/chdevs.$$ file, which
21e01f13f717faeca3e498d7d9c9b4d3af98ae27trawick # contains the list of logical names of devices
21e01f13f717faeca3e498d7d9c9b4d3af98ae27trawick # whose permissions need to be changed.
21e01f13f717faeca3e498d7d9c9b4d3af98ae27trawick #
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe cat /tmp/chattr.$$ | \
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe while read key oldp oldu oldg newp newu newg chdevs
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe do
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe do_chdevs=no
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe #
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # First determine whether the device entry
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # is already in the file, but with the old
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # permissions. If so, the entry needs to be
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # modified and the devices in the chdevs list
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # need to have their permissions and ownerships
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # changed.
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe #
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe grepstr=`entry2pattern "${key}" $oldp $oldu $oldg`
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe if grep "$grepstr" $dest > /dev/null 2>&1; then
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe echo "s/${grepstr}/$key $newp $newu $newg/" \
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe >> /tmp/sedscript.$$
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe do_chdevs=yes
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe fi
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe #
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # Now determine whether the device entry is
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # in the file at all. If not, it is a new
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # entry, but there may already be devices
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # on the system whose permissions need to
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # be changed.
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe #
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe grepstr=`entry2pattern "${key}"`
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe grep "${grepstr}" $dest > /dev/null 2>&1
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe if [ $? != 0 ] ; then
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe do_chdevs=yes
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe fi
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe if [ $do_chdevs = yes -a "$chdevs" != "" ] ; then
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe xchdevs=`echo "$chdevs" | \
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe sed -f /tmp/esc.sed.$$`
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe for m in $xchdevs ; do
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe echo "$m" $oldp $oldu $oldg \
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe $newp $newu $newg >> /tmp/chdevs.$$
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe done
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe fi
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe done
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # sort the "change attributes" list
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe if [ -s /tmp/chdevs.$$ ] ; then
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe sort -u /tmp/chdevs.$$ > /tmp/tmp.$$
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard mv /tmp/tmp.$$ /tmp/chdevs.$$
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard fi
6f1e2a1eb9944358dc96ee52f2048377c57f1cfaaaron
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard #
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard # Process the list of devices to be deleted.
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard # Find those that actually need to be deleted
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard # from the file. For each entry to be deleted,
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard # add an entry for it to the sed script that will
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard # eventually be applied to the currently-installed
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard # /etc/minor_perm file. Also, add an entry to the
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard # /tmp/deldevs.$$ file, which contains the list of
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard # logical names of devices to be deleted.
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard #
c408915e2a85fedc520e97e96abda8f61aafc804stoddard
c408915e2a85fedc520e97e96abda8f61aafc804stoddard cat /tmp/delete.$$ | while read key deldevs
c408915e2a85fedc520e97e96abda8f61aafc804stoddard do
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard grepstr=`entry2pattern "${key}"`
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard if grep "$grepstr" $dest > /dev/null 2>&1; then
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard echo "/${grepstr}/d" >> /tmp/sedscript.$$
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard if [ "$deldevs" != "" ] ; then
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard xdeldevs=`echo "$deldevs" | \
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard sed -f /tmp/esc.sed.$$`
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard for m in $xdeldevs ; do
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard echo "$m" >> /tmp/deldevs.$$
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard done
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard fi
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard fi
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard done
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard if [ -s /tmp/deldevs.$$ ] ; then
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard sort -u /tmp/deldevs.$$ > /tmp/tmp.$$
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard mv /tmp/tmp.$$ /tmp/deldevs.$$
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard fi
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard #
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard # Apply the sed script possibly built above to the
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard # currently-installed /etc/minor_perm file.
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard #
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard if [ -s /tmp/sedscript.$$ ] ; then
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard sed -f /tmp/sedscript.$$ $dest > /tmp/tmp.$$
64ad864fa0f4493eebb181e393b40a8a90beccb9coar cp /tmp/tmp.$$ $dest
64ad864fa0f4493eebb181e393b40a8a90beccb9coar fi
64ad864fa0f4493eebb181e393b40a8a90beccb9coar
64ad864fa0f4493eebb181e393b40a8a90beccb9coar # For all entries in minor_perm whose attributes had
64ad864fa0f4493eebb181e393b40a8a90beccb9coar # to be corrected, correct the relevant attributes of the
48c0c81cd6fabac9d3386406d97633780365b839coar # already-existing devices that correspond to those
64ad864fa0f4493eebb181e393b40a8a90beccb9coar # entries.
64ad864fa0f4493eebb181e393b40a8a90beccb9coar #
64ad864fa0f4493eebb181e393b40a8a90beccb9coar if [ -s /tmp/chdevs.$$ -a "$PKG_INSTALL_ROOT" != "" -a \
48c0c81cd6fabac9d3386406d97633780365b839coar "$PKG_INSTALL_ROOT" != "/" ] ; then
64ad864fa0f4493eebb181e393b40a8a90beccb9coar cat /tmp/chdevs.$$ |\
64ad864fa0f4493eebb181e393b40a8a90beccb9coar while read device oldp oldu oldg newp newu newg
64ad864fa0f4493eebb181e393b40a8a90beccb9coar do
48c0c81cd6fabac9d3386406d97633780365b839coar #
64ad864fa0f4493eebb181e393b40a8a90beccb9coar # Note that we take pains -only- to change
64ad864fa0f4493eebb181e393b40a8a90beccb9coar # the permission/ownership of devices that
64ad864fa0f4493eebb181e393b40a8a90beccb9coar # have kept their original permissions.
64ad864fa0f4493eebb181e393b40a8a90beccb9coar #
48c0c81cd6fabac9d3386406d97633780365b839coar for dev in $PKG_INSTALL_ROOT/$device; do
64ad864fa0f4493eebb181e393b40a8a90beccb9coar find $dev -follow -perm $oldp -exec \
64ad864fa0f4493eebb181e393b40a8a90beccb9coar chmod $newp $dev \; >/dev/null 2>&1
64ad864fa0f4493eebb181e393b40a8a90beccb9coar find $dev -follow -user $oldu -exec \
48c0c81cd6fabac9d3386406d97633780365b839coar chown $newu $dev \; >/dev/null 2>&1
64ad864fa0f4493eebb181e393b40a8a90beccb9coar find $dev -follow -group $oldg -exec \
64ad864fa0f4493eebb181e393b40a8a90beccb9coar chgrp $newg $dev \; >/dev/null 2>&1
64ad864fa0f4493eebb181e393b40a8a90beccb9coar done
48c0c81cd6fabac9d3386406d97633780365b839coar done
64ad864fa0f4493eebb181e393b40a8a90beccb9coar fi
64ad864fa0f4493eebb181e393b40a8a90beccb9coar
64ad864fa0f4493eebb181e393b40a8a90beccb9coar #
48c0c81cd6fabac9d3386406d97633780365b839coar # For all entries in minor_perm that were deleted,
64ad864fa0f4493eebb181e393b40a8a90beccb9coar # remove the /dev entries that point to device nodes
64ad864fa0f4493eebb181e393b40a8a90beccb9coar # that correspond to those entries.
64ad864fa0f4493eebb181e393b40a8a90beccb9coar #
64ad864fa0f4493eebb181e393b40a8a90beccb9coar if [ -s /tmp/deldevs.$$ -a "$PKG_INSTALL_ROOT" != "" -a \
48c0c81cd6fabac9d3386406d97633780365b839coar "$PKG_INSTALL_ROOT" != "/" ] ; then
64ad864fa0f4493eebb181e393b40a8a90beccb9coar cat /tmp/deldevs.$$ | while read device
64ad864fa0f4493eebb181e393b40a8a90beccb9coar do
64ad864fa0f4493eebb181e393b40a8a90beccb9coar rm -f $PKG_INSTALL_ROOT/$device
48c0c81cd6fabac9d3386406d97633780365b839coar done
64ad864fa0f4493eebb181e393b40a8a90beccb9coar fi
64ad864fa0f4493eebb181e393b40a8a90beccb9coar
64ad864fa0f4493eebb181e393b40a8a90beccb9coar cat /tmp/add.$$ | while read key
48c0c81cd6fabac9d3386406d97633780365b839coar do
64ad864fa0f4493eebb181e393b40a8a90beccb9coar grepstr=`entry2pattern "${key}"`
64ad864fa0f4493eebb181e393b40a8a90beccb9coar grep "$grepstr" $dest > /dev/null 2>&1
64ad864fa0f4493eebb181e393b40a8a90beccb9coar if [ $? != 0 ] ; then
48c0c81cd6fabac9d3386406d97633780365b839coar grep "$grepstr" $src >> $dest
64ad864fa0f4493eebb181e393b40a8a90beccb9coar fi
64ad864fa0f4493eebb181e393b40a8a90beccb9coar done
64ad864fa0f4493eebb181e393b40a8a90beccb9coar
48c0c81cd6fabac9d3386406d97633780365b839coar rm -f /tmp/*.$$
64ad864fa0f4493eebb181e393b40a8a90beccb9coar fi
64ad864fa0f4493eebb181e393b40a8a90beccb9coardone
64ad864fa0f4493eebb181e393b40a8a90beccb9coar
48c0c81cd6fabac9d3386406d97633780365b839coarexit 0
64ad864fa0f4493eebb181e393b40a8a90beccb9coar