i.minorperm_i386 revision 8a57cef6afbd3163c64efedaa20cbfab2c46b9cd
f743002678eb67b99bbc29fee116b65d9530fec0wrowe#!/bin/sh
80833bb9a1bf25dcf19e814438a4b311d2e1f4cffuankg#
a34684a59b60a4173c25035d0c627ef17e6dc215rpluem# CDDL HEADER START
1337c7673efc1f80f634139fbad7cbb98a0dc657ylavic#
1337c7673efc1f80f634139fbad7cbb98a0dc657ylavic# The contents of this file are subject to the terms of the
1337c7673efc1f80f634139fbad7cbb98a0dc657ylavic# Common Development and Distribution License (the "License").
1337c7673efc1f80f634139fbad7cbb98a0dc657ylavic# You may not use this file except in compliance with the License.
4da61833a1cbbca94094f9653fd970582b97a72etrawick#
4da61833a1cbbca94094f9653fd970582b97a72etrawick# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4da61833a1cbbca94094f9653fd970582b97a72etrawick# or http://www.opensolaris.org/os/licensing.
4da61833a1cbbca94094f9653fd970582b97a72etrawick# See the License for the specific language governing permissions
4da61833a1cbbca94094f9653fd970582b97a72etrawick# and limitations under the License.
4789804be088bcd86ae637a29cdb7fda25169521jailletc#
4789804be088bcd86ae637a29cdb7fda25169521jailletc# When distributing Covered Code, include this CDDL HEADER in each
4789804be088bcd86ae637a29cdb7fda25169521jailletc# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4789804be088bcd86ae637a29cdb7fda25169521jailletc# If applicable, add the following below this CDDL HEADER, with the
e50c3026198fd496f183cda4c32a202925476778covener# fields enclosed by brackets "[]" replaced with your own identifying
e50c3026198fd496f183cda4c32a202925476778covener# information: Portions Copyright [yyyy] [name of copyright owner]
e50c3026198fd496f183cda4c32a202925476778covener#
5b88c8507d5ef6d0c4cfbc78230294968175b638minfrin# CDDL HEADER END
5b88c8507d5ef6d0c4cfbc78230294968175b638minfrin#
6c3b9cebb551140fbb25d58bae08b539b3802133ylavic#
6c3b9cebb551140fbb25d58bae08b539b3802133ylavic# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
6c3b9cebb551140fbb25d58bae08b539b3802133ylavic# Use is subject to license terms.
4f29b65ab4b547ad5dbe506e2d0ff5d12ead9247ylavic#
4f29b65ab4b547ad5dbe506e2d0ff5d12ead9247ylavic
0a0df13b7f1f4f1a74fe295253d89ca3911b301aylavic#
0a0df13b7f1f4f1a74fe295253d89ca3911b301aylavic# NOTE: When a change is made to the source file for
0a0df13b7f1f4f1a74fe295253d89ca3911b301aylavic# /etc/minor_perm, a corresponding change must be made to
0a0df13b7f1f4f1a74fe295253d89ca3911b301aylavic# this class-action script.
69301145375a889e7e37caf7cc7321ac0f91801erpluem#
69301145375a889e7e37caf7cc7321ac0f91801erpluem# - If an existing entry in minor_perm is having its
69301145375a889e7e37caf7cc7321ac0f91801erpluem# attributes e.g. permissions, ownership changed,
506bfe33206b2fece40ef25f695af39dd4130facjkaluza# add it to the list produced by make_chattr_list below.
506bfe33206b2fece40ef25f695af39dd4130facjkaluza#
506bfe33206b2fece40ef25f695af39dd4130facjkaluza# - If an existing entry must be deleted, add it to
506bfe33206b2fece40ef25f695af39dd4130facjkaluza# the list produced by make_delete_list below.
d58a848a016d401b965111e50ef829e1641f7834minfrin#
d58a848a016d401b965111e50ef829e1641f7834minfrin# - If a new entry must be added to the file, add it to the
d58a848a016d401b965111e50ef829e1641f7834minfrin# list produced by make_add_list.
2e6f4d654c96c98b761fb012fd25c5d5b1558c44sf#
2e6f4d654c96c98b761fb012fd25c5d5b1558c44sf# - If a new entry is being added to minor_perm, but there
2e6f4d654c96c98b761fb012fd25c5d5b1558c44sf# may already be devices of that name on the system (e.g.
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavic# we used the system default permissions in a previous release),
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavic# and those old devices now need to have their attributes changed,
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavic# add it to the make_chattr_list AND the make_add_list lists
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavic#
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavic
e8bd80a4bb88199d2f9a24a50345688e52d9c116ylavic#
e8bd80a4bb88199d2f9a24a50345688e52d9c116ylavic# If an entry in /etc/minor_perm needs to have its attributes
e8bd80a4bb88199d2f9a24a50345688e52d9c116ylavic# changed, identify the entry in the list copied to /etc/chattr.$$
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavic# by this function. The fields are:
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavic#
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavic# <device>:<minor> <old_attrs> <new_attrs> <optional list of logical
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavic# devices whose attributes
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavic# will need to be changed>
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavic#
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavic# where an <attribute list> := <perm> <user> <group>
d7205b1a86c51c27b71a2c458dc453fd53a261c1covener#
d7205b1a86c51c27b71a2c458dc453fd53a261c1covener# NOTE: this list should also contain entries for nodes that previously
d7205b1a86c51c27b71a2c458dc453fd53a261c1covener# were not in /etc/minor_perm (which means the default mode of 600,
d7205b1a86c51c27b71a2c458dc453fd53a261c1covener# owner/group == root/sys), but now have an entry
d7205b1a86c51c27b71a2c458dc453fd53a261c1covener#
44ff304057225e944e220e981d434a046d14cf06covener
44ff304057225e944e220e981d434a046d14cf06covenermake_chattr_list()
44ff304057225e944e220e981d434a046d14cf06covener{
44ff304057225e944e220e981d434a046d14cf06covenercat > /tmp/chattr.$$ << EOF
5d1ba75b8794925e67591c209085a49279791de9covenervol:volctl 0600 root sys 0666 root sys /dev/volctl
5d1ba75b8794925e67591c209085a49279791de9covenerclone:llc1 0600 root sys 0666 root sys /dev/llc1
5d1ba75b8794925e67591c209085a49279791de9covenerlog:conslog 0620 root sys 0666 root sys /dev/conslog
032982212dbcc7c3cce95bf89c503bb56e185ac7kbrandsy:tty 0666 root sys 0666 root tty /dev/tty
032982212dbcc7c3cce95bf89c503bb56e185ac7kbrandicmp:icmp 0600 root sys 0666 root sys /dev/rawip
032982212dbcc7c3cce95bf89c503bb56e185ac7kbrandicmp6:icmp6 0600 root sys 0666 root sys /dev/rawip6
032982212dbcc7c3cce95bf89c503bb56e185ac7kbrandip:ip 0660 root sys 0666 root sys /dev/ip
caad2986f81ab263f7af41467dd622dc9add17f3ylavicip6:ip6 0660 root sys 0666 root sys /dev/ip6
caad2986f81ab263f7af41467dd622dc9add17f3ylavicrts:rts 0660 root sys 0666 root sys /dev/rts
caad2986f81ab263f7af41467dd622dc9add17f3ylavickeysock:keysock 0600 root sys 0666 root sys /dev/keysock
caad2986f81ab263f7af41467dd622dc9add17f3ylavicipsecah:ipsecah 0600 root sys 0666 root sys /dev/ipsecah
45a10d38e6051fd7bdf9d742aaae633d97ff02abjailletcipsecesp:ipsecesp 0600 root sys 0666 root sys /dev/ipsecesp
f7317ff316c2b141feea31bddb74d5d3fa1584edjortonspdsock:spdsock 0600 root sys 0666 root sys /dev/spdsock
f7317ff316c2b141feea31bddb74d5d3fa1584edjortonsad:admin 0600 root sys 0666 root sys /dev/sad/admin
2165214331e4afafca4048f66f303d0253d7b001covenerfssnap:ctl 0600 root sys 0666 root sys /dev/fssnapctl
a34684a59b60a4173c25035d0c627ef17e6dc215rpluemfssnap:* 0600 root sys 0640 root sys /dev/fssnap/*
a34684a59b60a4173c25035d0c627ef17e6dc215rpluemclone:dnet 0600 root sys 0666 root sys /dev/dnet
1e2d421a36999d292042a5539971070d54aa6c63ylavicdnet:* 0600 root sys 0666 root sys /dev/dnet*
1e2d421a36999d292042a5539971070d54aa6c63ylavicclone:elxl 0600 root sys 0666 root sys /dev/elxl
1e2d421a36999d292042a5539971070d54aa6c63ylavicelxl:* 0600 root sys 0666 root sys /dev/elxl*
fa7ed98b9dc94c5845cf845aea0a44ecacd290c9humbedoohclone:iprb 0600 root sys 0666 root sys /dev/iprb
fa7ed98b9dc94c5845cf845aea0a44ecacd290c9humbedoohiprb:* 0600 root sys 0666 root sys /dev/iprb*
fa7ed98b9dc94c5845cf845aea0a44ecacd290c9humbedoohclone:pcelx 0600 root sys 0666 root sys /dev/pcelx
0b67eb8568cd58bb77082703951679b42cf098actrawickpcelx:* 0600 root sys 0666 root sys /dev/pcelx*
0b67eb8568cd58bb77082703951679b42cf098actrawickclone:spwr 0600 root sys 0666 root sys /dev/spwr
0b67eb8568cd58bb77082703951679b42cf098actrawickspwr:* 0600 root sys 0666 root sys /dev/spwr*
0b67eb8568cd58bb77082703951679b42cf098actrawickcpc:* 0600 root sys 0666 root sys /devices/pseudo/cpc*
5ef3c61605a3a021ff71f488983cb0065f8e1a79coveneripf:* 0600 root sys 0666 root sys /dev/ipf
fb1985a97912b25ec6564c73e610a31e5fc6e25fcovenerpfil:* 0600 root sys 0666 root sys /dev/pfil
09c87c777bed1655621bb20e1c46cb6b1a63279dcovenerscsi_vhci:devctl 0600 root sys 0666 root sys /devices/scsi_vhci:devctl
6502b7b32f980cc2093bb3ebce37e5e4dc68fba4ylavicfbt:fbt 0600 root sys 0644 root sys /dev/dtrace/provider/fbt
6502b7b32f980cc2093bb3ebce37e5e4dc68fba4ylaviclockstat:* 0600 root sys 0644 root sys /dev/dtrace/provider/lockstat
3060ce7f798fbda7999cd4ddf89b525d2b294185covenerprofile:profile 0600 root sys 0644 root sys /dev/dtrace/provider/profile
c1a63b8fad09c419c1a64f75993feb8a343a6801ylavicsdt:sdt 0600 root sys 0644 root sys /dev/dtrace/provider/sdt
c1a63b8fad09c419c1a64f75993feb8a343a6801ylavicsystrace:systrace 0600 root sys 0644 root sys /dev/dtrace/provider/systrace
c1a63b8fad09c419c1a64f75993feb8a343a6801ylavicclone:bge 0600 root sys 0666 root sys /dev/bge
e6b4bd1113567627ab6bb6c6a7105e1e01a7d889jailletcclone:igb 0600 root sys 0666 root sys /dev/igb
e6b4bd1113567627ab6bb6c6a7105e1e01a7d889jailletcclone:ixgbe 0600 root sys 0666 root sys /dev/ixgbe
e466c40e1801982602ee0200c9e8b61cc148742djailletcclone:rge 0600 root sys 0666 root sys /dev/rge
e466c40e1801982602ee0200c9e8b61cc148742djailletcclone:xge 0600 root sys 0666 root sys /dev/xge
457468b82e59d01eba00dd9d0817309c8f5e414ejimclone:nge 0600 root sys 0666 root sys /dev/nge
457468b82e59d01eba00dd9d0817309c8f5e414ejimclone:chxge 0600 root sys 0666 root sys /dev/chxge
457468b82e59d01eba00dd9d0817309c8f5e414ejimclone:pcn 0600 root sys 0666 root sys /dev/pcn
04983e3bd1754764eec7d6bb772fe3b0bf391771jortonclone:rtls 0600 root sys 0666 root sys /dev/rtls
04983e3bd1754764eec7d6bb772fe3b0bf391771jortonclone:arn 0600 root sys 0666 root sys /dev/arn
15890c9306ba98f6fc243e15a3c4778ddc7d773erpluemclone:ath 0600 root sys 0666 root sys /dev/ath
15660979a30d251681463de2e0584853890082accovenerclone:atu 0600 root sys 0666 root sys /dev/atu
15660979a30d251681463de2e0584853890082accovenerclone:ipw 0600 root sys 0666 root sys /dev/ipw
49dacedb6c387b786b7911082ff35121a45f414bcovenerclone:iwh 0600 root sys 0666 root sys /dev/iwh
49dacedb6c387b786b7911082ff35121a45f414bcovenerclone:iwi 0600 root sys 0666 root sys /dev/iwi
cfd9415521847b2f9394fad04fb701cfb955f503rjungclone:iwk 0600 root sys 0666 root sys /dev/iwk
cfd9415521847b2f9394fad04fb701cfb955f503rjungclone:pcwl 0600 root sys 0666 root sys /dev/pcwl
cfd9415521847b2f9394fad04fb701cfb955f503rjungclone:pcan 0600 root sys 0666 root sys /dev/pcan
28c31fb73c1264bd1d0ff932573677030b024c7dwroweclone:ral 0600 root sys 0666 root sys /dev/ral
28c31fb73c1264bd1d0ff932573677030b024c7dwroweclone:rtw 0600 root sys 0666 root sys /dev/rtw
28c31fb73c1264bd1d0ff932573677030b024c7dwroweclone:rum 0600 root sys 0666 root sys /dev/rum
28c31fb73c1264bd1d0ff932573677030b024c7dwroweclone:rwn 0600 root sys 0666 root sys /dev/rwn
28c31fb73c1264bd1d0ff932573677030b024c7dwroweclone:ural 0600 root sys 0666 root sys /dev/ural
8491e0600f69b0405e156ea8a419653c065c645bcovenerclone:urtw 0600 root sys 0666 root sys /dev/urtw
63b9f1f5880391261705f696d7d65507bbe9ace3covenerclone:wpi 0600 root sys 0666 root sys /dev/wpi
63b9f1f5880391261705f696d7d65507bbe9ace3covenerclone:zyd 0600 root sys 0666 root sys /dev/zyd
63b9f1f5880391261705f696d7d65507bbe9ace3covenerclone:afe 0600 root sys 0666 root sys /dev/afe
49dacedb6c387b786b7911082ff35121a45f414bcovenerclone:dmfe 0600 root sys 0666 root sys /dev/dmfe
49dacedb6c387b786b7911082ff35121a45f414bcovenerclone:mxfe 0600 root sys 0666 root sys /dev/mxfe
49dacedb6c387b786b7911082ff35121a45f414bcovenerbge:* 0600 root sys 0666 root sys /dev/bge*
49dacedb6c387b786b7911082ff35121a45f414bcovenerigb:* 0600 root sys 0666 root sys /dev/igb*
3c990331fc6702119e4f5b8ba9eae3021aea5265jimixgbe:* 0600 root sys 0666 root sys /dev/ixgbe*
3c990331fc6702119e4f5b8ba9eae3021aea5265jimrge:* 0600 root sys 0666 root sys /dev/rge*
3c990331fc6702119e4f5b8ba9eae3021aea5265jimxge:* 0600 root sys 0666 root sys /dev/xge*
3c990331fc6702119e4f5b8ba9eae3021aea5265jimnge:* 0600 root sys 0666 root sys /dev/nge*
fc42512879dd0504532f52fe5d0d0383dda96a1eniqe1000g:* 0666 root root 0666 root sys /dev/e1000g*
fc42512879dd0504532f52fe5d0d0383dda96a1eniqchxge:* 0600 root sys 0666 root sys /dev/chxge*
fc42512879dd0504532f52fe5d0d0383dda96a1eniqpcn:* 0600 root sys 0666 root sys /dev/pcn*
0451df5dc50fa5d8b3e07d92ee6a92e36a1181a5niqrtls:* 0600 root sys 0666 root sys /dev/rtls*
0451df5dc50fa5d8b3e07d92ee6a92e36a1181a5niqarn:* 0600 root sys 0666 root sys /dev/arn*
0451df5dc50fa5d8b3e07d92ee6a92e36a1181a5niqath:* 0600 root sys 0666 root sys /dev/ath*
da0442c0440caef34706e2c2f3af05cb65921cc0jailletcatu:* 0600 root sys 0666 root sys /dev/atu*
983528026996668ea295be95aedb9c7a346af470ylavicipw:* 0600 root sys 0666 root sys /dev/ipw*
da0442c0440caef34706e2c2f3af05cb65921cc0jailletciwh:* 0600 root sys 0666 root sys /dev/iwh*
da0442c0440caef34706e2c2f3af05cb65921cc0jailletciwi:* 0600 root sys 0666 root sys /dev/iwi*
06b8f183140c8e02e0974e938a05078b511d1603coveneriwk:* 0600 root sys 0666 root sys /dev/iwk*
06b8f183140c8e02e0974e938a05078b511d1603covenerpcwl:* 0600 root sys 0666 root sys /dev/pcwl*
06b8f183140c8e02e0974e938a05078b511d1603covenerpcan:* 0600 root sys 0666 root sys /dev/pcan*
15890c9306ba98f6fc243e15a3c4778ddc7d773erpluemral:* 0600 root sys 0666 root sys /dev/ral*
259878293a997ff49f5ddfc53d3739cbdc25444ecovenerrtw:* 0600 root sys 0666 root sys /dev/rtw*
259878293a997ff49f5ddfc53d3739cbdc25444ecovenerrum:* 0600 root sys 0666 root sys /dev/rum*
259878293a997ff49f5ddfc53d3739cbdc25444ecovenerrwn:* 0600 root sys 0666 root sys /dev/rwn*
259878293a997ff49f5ddfc53d3739cbdc25444ecovenerural:* 0600 root sys 0666 root sys /dev/ural*
15890c9306ba98f6fc243e15a3c4778ddc7d773erpluemurtw:* 0600 root sys 0666 root sys /dev/urtw*
b54b024c06a19926832d77d40ba35ad8c41e4d3dminfrinwpi:* 0600 root sys 0666 root sys /dev/wpi*
b54b024c06a19926832d77d40ba35ad8c41e4d3dminfrinzyd:* 0600 root sys 0666 root sys /dev/zyd*
b54b024c06a19926832d77d40ba35ad8c41e4d3dminfrinafe:* 0600 root sys 0666 root sys /dev/afe*
65967d05f839dbf27cf91d91fa79585eeae19660minfrindmfe:* 0600 root sys 0666 root sys /dev/dmfe*
65967d05f839dbf27cf91d91fa79585eeae19660minfrinmxfe:* 0600 root sys 0666 root sys /dev/mxfe*
65967d05f839dbf27cf91d91fa79585eeae19660minfrinballoon:* 0600 root sys 0444 root sys /dev/xen/balloon
65967d05f839dbf27cf91d91fa79585eeae19660minfrindomcaps:* 0600 root sys 0444 root sys /dev/xen/domcaps
8152945ae46857b170cb227e79bb799f4fc7710dminfrinevtchn:* 0600 root sys 0666 root sys /dev/xen/evtchn
8152945ae46857b170cb227e79bb799f4fc7710dminfrinprivcmd:* 0600 root sys 0666 root sys /dev/xen/privcmd
8152945ae46857b170cb227e79bb799f4fc7710dminfrinxenbus:* 0600 root sys 0666 root sys /dev/xen/xenbus
8152945ae46857b170cb227e79bb799f4fc7710dminfrinxpvtap:* 0600 root sys 0666 root sys /devices/xpvd/xpvtap*
75f5c2db254c0167a0e396254460de09b775d203trawickEOF
75f5c2db254c0167a0e396254460de09b775d203trawick}
75f5c2db254c0167a0e396254460de09b775d203trawick
4f0358189bfa57b8e75bd6b94db264302a8f336amrumph#
4f0358189bfa57b8e75bd6b94db264302a8f336amrumph# If an entry in /etc/minor_perm needs to be deleted, identify
4f0358189bfa57b8e75bd6b94db264302a8f336amrumph# the entry in the list copied to /etc/delete.$$ by this function.
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick# The fields are:
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick#
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick# <device>:<minor> <optional list of logical devices to be deleted>
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick#
54d750a84a175d8e338880514d440773eb986b50covener
54d750a84a175d8e338880514d440773eb986b50covenermake_delete_list()
54d750a84a175d8e338880514d440773eb986b50covener{
54d750a84a175d8e338880514d440773eb986b50covenercat > /tmp/delete.$$ << EOF
54d750a84a175d8e338880514d440773eb986b50covenerrip:rawip
54d750a84a175d8e338880514d440773eb986b50covenerconsfb:consfb
54d750a84a175d8e338880514d440773eb986b50covenerclone:el
54d750a84a175d8e338880514d440773eb986b50covenerclone:elx
7a3aa12f0eda24793ee26d6a179bd53132e9dae8covenerclone:sle
54d750a84a175d8e338880514d440773eb986b50covenerclone:sie
54d750a84a175d8e338880514d440773eb986b50covenerclone:sp
83b50288fa7d306324bba68832011ea08f5c7832covenerclone:ip
4e30ef014533a7e93c92d88306291f5e49c9692ftrawickclone:icmp
83b50288fa7d306324bba68832011ea08f5c7832covenerclone:udp
5f066f496cd9f20a2a701255bc67d44e7cb46daetrawickclone:tcp
5f066f496cd9f20a2a701255bc67d44e7cb46daetrawickclone:rts
5f066f496cd9f20a2a701255bc67d44e7cb46daetrawickclone:arp
2e15620d724fb8e3a5be183b917359a2fd6e9468covenerclone:ipsecah
2e15620d724fb8e3a5be183b917359a2fd6e9468covenerclone:ipsecesp
2e15620d724fb8e3a5be183b917359a2fd6e9468covenerclone:keysock
2e15620d724fb8e3a5be183b917359a2fd6e9468covenerclone:smc
1b988c41ee505962781d110a3e4c2c90f1ea0aa4covenerclone:tr
1b988c41ee505962781d110a3e4c2c90f1ea0aa4covenerclone:sbpro
1b988c41ee505962781d110a3e4c2c90f1ea0aa4covenerelx:*
1b988c41ee505962781d110a3e4c2c90f1ea0aa4covenersbpro:*
b8efdc95bec9cf089aa1be0bfd07d46aa1137a7acovenerwin:*
b8efdc95bec9cf089aa1be0bfd07d46aa1137a7acovenercmtp:*
b8efdc95bec9cf089aa1be0bfd07d46aa1137a7acovenerprofile:profile
f06e7c4b1bce6b6491e5de0b7998d3f5696b293dchrisdasy:[a-z]
f06e7c4b1bce6b6491e5de0b7998d3f5696b293dchrisdasy:[a-z],cu
f06e7c4b1bce6b6491e5de0b7998d3f5696b293dchrisdi2o_bs:*
179565be4043d7e5f9161aa75271fa0a001866d9covenervni:*
179565be4043d7e5f9161aa75271fa0a001866d9covenerEOF
179565be4043d7e5f9161aa75271fa0a001866d9covener}
111436a32ba1254291e4883292fb116d15fe8f64covener
fce4949fb0b309a5744afcd503c6ed2d35621ee2covener#
fce4949fb0b309a5744afcd503c6ed2d35621ee2covener# If an entry needs to be added to /etc/minor_perm, add the first
fce4949fb0b309a5744afcd503c6ed2d35621ee2covener# field of the entry to the list created by this function. The
fce4949fb0b309a5744afcd503c6ed2d35621ee2covener# remainder of the entry will be extracted from the /etc/minor_perm
7b7430e701e9a31ce809da7c220bb8dfcf68c86etrawick# in the package being installed, so it is not necessary to supply
7b7430e701e9a31ce809da7c220bb8dfcf68c86etrawick# it here.
7b7430e701e9a31ce809da7c220bb8dfcf68c86etrawick#
ccc20788c1e5fc973f36df634399c89acb70deaejerenkrantz
ccc20788c1e5fc973f36df634399c89acb70deaejerenkrantzmake_add_list()
ccc20788c1e5fc973f36df634399c89acb70deaejerenkrantz{
273e512f20f262e5e2aa8e0e83371d1929fb76adjkaluzacat > /tmp/add.$$ << EOF
273e512f20f262e5e2aa8e0e83371d1929fb76adjkaluzavol:volctl
273e512f20f262e5e2aa8e0e83371d1929fb76adjkaluzaclone:llc1
efe780dcf13b2b95effabf897d694d8f23feac74trawicktnf:tnfctl
fe83f60b41477b14a37edcfcd1f7f5c5a1ebfe44minfrintnf:tnfmap
fe83f60b41477b14a37edcfcd1f7f5c5a1ebfe44minfrinst:*
fe83f60b41477b14a37edcfcd1f7f5c5a1ebfe44minfrinpm:*
993d1261a278d7322bccef219101220b7b4fb8c5jkaluzadevinfo:devinfo
993d1261a278d7322bccef219101220b7b4fb8c5jkaluzaopeneepr:openprom
993d1261a278d7322bccef219101220b7b4fb8c5jkaluzawc:*
ba050a6f942b9fa0e81ed73437588005c569655ccovenerip:ip
ba050a6f942b9fa0e81ed73437588005c569655ccovenerip6:ip6
ba050a6f942b9fa0e81ed73437588005c569655ccoveneripnet:lo0
ba050a6f942b9fa0e81ed73437588005c569655ccovenericmp:icmp
135ddda3a989215d2bedbcf1529bfb269c3eda23niqicmp6:icmp6
135ddda3a989215d2bedbcf1529bfb269c3eda23niqudp:udp
135ddda3a989215d2bedbcf1529bfb269c3eda23niqudp6:udp6
001a44c352f89c9ec332ffd3e0a6927dcd19432chumbedoohtcp:tcp
001a44c352f89c9ec332ffd3e0a6927dcd19432chumbedoohtcp6:tcp6
001a44c352f89c9ec332ffd3e0a6927dcd19432chumbedoohrts:rts
efe780dcf13b2b95effabf897d694d8f23feac74trawickarp:arp
793214f67dede32edfd9ee96c664ead04d175cbbjfclerepoll:*
cc5a4a08dc9783fcbc52ce86f11e01c281a43810minfrinpool:pool
9b0076ddd1103e5fa9c1f9bafde4b06ce244fbaecovenerpool:poolctl
9b0076ddd1103e5fa9c1f9bafde4b06ce244fbaecovenercpc:shared
9b0076ddd1103e5fa9c1f9bafde4b06ce244fbaecovenersysmsg:msglog
249d09d51808cb7981af99762c3b3736ca126cd5jkaluzasysmsg:sysmsg
249d09d51808cb7981af99762c3b3736ca126cd5jkaluzaipsecah:ipsecah
249d09d51808cb7981af99762c3b3736ca126cd5jkaluzaipsecesp:ipsecesp
249d09d51808cb7981af99762c3b3736ca126cd5jkaluzakeysock:keysock
56589be3d7a3e9343370df240010c6928cc78b39jkaluzaspdsock:spdsock
56589be3d7a3e9343370df240010c6928cc78b39jkaluzadevinfo:devinfo,ro
56589be3d7a3e9343370df240010c6928cc78b39jkaluzalofi:*
77ca16c5676da23155311e13cee61e7eaba9fa3ejailletclofi:ctl
77ca16c5676da23155311e13cee61e7eaba9fa3ejailletcsgen:*
77ca16c5676da23155311e13cee61e7eaba9fa3ejailletcfssnap:*
77ca16c5676da23155311e13cee61e7eaba9fa3ejailletcfssnap:ctl
f87299dab99bc04b51a6b8cad51b6795db862c0atrawickrsm:*
f87299dab99bc04b51a6b8cad51b6795db862c0atrawickrandom:*
f87299dab99bc04b51a6b8cad51b6795db862c0atrawickmm:allkmem
4d12805e6c18253040223ea637acd6b3b3c18f60jortonclone:dnet
4d12805e6c18253040223ea637acd6b3b3c18f60jortondnet:*
4d12805e6c18253040223ea637acd6b3b3c18f60jortonclone:elxl
85eacfc96a04547ef25aabbc06440039715084c2jortonelxl:*
85eacfc96a04547ef25aabbc06440039715084c2jortonclone:ibd
e5d909f2b06bd880fb3675cd49363df981caa631trawickibd:*
a4df2cd1e1391575a327c2a90ba4315f805a0a78covenerclone:iprb
a4df2cd1e1391575a327c2a90ba4315f805a0a78coveneriprb:*
a4df2cd1e1391575a327c2a90ba4315f805a0a78covenerclone:pcelx
cb666b29f81df1d11d65002250153353568021fccovenerpcelx:*
cb666b29f81df1d11d65002250153353568021fccovenerclone:spwr
cb666b29f81df1d11d65002250153353568021fccovenerspwr:*
6a80c3c6f4b8ea7ba5e89402b8b779b09ce020e0covenersysevent:*
1c2cab00d988fc48cbe59032cf76cc0bab20d6f7covenerramdisk:*
6a80c3c6f4b8ea7ba5e89402b8b779b09ce020e0covenerramdisk:ctl
75a230a728338d84dcfe81edd375352f34de22d0covenercryptoadm:cryptoadm
75a230a728338d84dcfe81edd375352f34de22d0covenercrypto:crypto
75a230a728338d84dcfe81edd375352f34de22d0covenerdtrace:*
1f50dc34ae069adeed20b2986e5ffdefa5c410e0covenerfasttrap:fasttrap
1f50dc34ae069adeed20b2986e5ffdefa5c410e0coveneripf:*
1f50dc34ae069adeed20b2986e5ffdefa5c410e0covenerpfil:*
63a5ea80bddcc84a462e40f402b4f330e0e05411covenerbl:*
63a5ea80bddcc84a462e40f402b4f330e0e05411covenersctp:*
63a5ea80bddcc84a462e40f402b4f330e0e05411covenersctp6:*
63a5ea80bddcc84a462e40f402b4f330e0e05411covenerdlpistub:*
65a4e663b82f8bce28ac22ab2edfd7502de36998sfcpuid:self
65a4e663b82f8bce28ac22ab2edfd7502de36998sfclone:bge
65a4e663b82f8bce28ac22ab2edfd7502de36998sfclone:igb
65a4e663b82f8bce28ac22ab2edfd7502de36998sfclone:ixgbe
c7de1955eb0eaeabf7042902476397692672d549sfclone:rge
74e7f6c55fd67b10cb400b3f6d1dc718a303d944minfrinclone:xge
74e7f6c55fd67b10cb400b3f6d1dc718a303d944minfrinclone:nge
74e7f6c55fd67b10cb400b3f6d1dc718a303d944minfrinclone:e1000g
74e7f6c55fd67b10cb400b3f6d1dc718a303d944minfrinclone:chxge
a511a29faf2ff7ead3b67680154a624effb31aafminfrinclone:pcn
a511a29faf2ff7ead3b67680154a624effb31aafminfrinclone:rtls
a511a29faf2ff7ead3b67680154a624effb31aafminfrinclone:arn
a511a29faf2ff7ead3b67680154a624effb31aafminfrinclone:ath
a511a29faf2ff7ead3b67680154a624effb31aafminfrinclone:atu
63921358ef93fcb41bc71d9894221ba3d7fbb87bminfrinclone:ipw
63921358ef93fcb41bc71d9894221ba3d7fbb87bminfrinclone:iwh
63921358ef93fcb41bc71d9894221ba3d7fbb87bminfrinclone:iwi
deec48c67d4786bc77112ffbf3a4e70b931097edminfrinclone:iwk
6d601599d3d65df0410eae6e573e75b2dbfb1fb4minfrinclone:pcwl
6d601599d3d65df0410eae6e573e75b2dbfb1fb4minfrinclone:pcan
6d601599d3d65df0410eae6e573e75b2dbfb1fb4minfrinclone:ral
6d601599d3d65df0410eae6e573e75b2dbfb1fb4minfrinclone:rtw
684e0cfc200f66287a93bbd1708d1dd8a92a7eefcovenerclone:rum
684e0cfc200f66287a93bbd1708d1dd8a92a7eefcovenerclone:rwn
5c43d2fb853f84497b5ece2d414ef9484aa87e5fsfclone:ural
05a5a9c3e16f21566e1b61f4bd68025ce1b741ccjoesclone:urtw
05a5a9c3e16f21566e1b61f4bd68025ce1b741ccjoesclone:wpi
ef82e8fa164e0a1f8b813f7deb6b7ead96018c94niqclone:zyd
26c5829347f6a355c00f1ba0301d575056b69536niqclone:afe
ef82e8fa164e0a1f8b813f7deb6b7ead96018c94niqclone:dmfe
ef82e8fa164e0a1f8b813f7deb6b7ead96018c94niqclone:mxfe
ef82e8fa164e0a1f8b813f7deb6b7ead96018c94niqbge:*
ef82e8fa164e0a1f8b813f7deb6b7ead96018c94niqigb:*
ef82e8fa164e0a1f8b813f7deb6b7ead96018c94niqixgbe:*
ef82e8fa164e0a1f8b813f7deb6b7ead96018c94niqrge:*
413ee814748f37be168ff12407fa6dba0ceeabe6trawickxge:*
c12917da693bae4028a1d5a5e8224bceed8c739dsfnge:*
c12917da693bae4028a1d5a5e8224bceed8c739dsfe1000g:*
eafcc0ebf263d0ba69855b6e10958c4c1a2361bdsfchxge:*
eafcc0ebf263d0ba69855b6e10958c4c1a2361bdsfpcn:*
eafcc0ebf263d0ba69855b6e10958c4c1a2361bdsfrtls:*
eafcc0ebf263d0ba69855b6e10958c4c1a2361bdsfarn:*
eafcc0ebf263d0ba69855b6e10958c4c1a2361bdsfath:*
d7ffd2da16d58b1a0de212e4d56f7aebb72bef26sfatu:*
d7ffd2da16d58b1a0de212e4d56f7aebb72bef26sfipw:*
d7ffd2da16d58b1a0de212e4d56f7aebb72bef26sfiwh:*
4576c1a9ef54cd1e5555ee07d016a7f559f80338sfiwi:*
4576c1a9ef54cd1e5555ee07d016a7f559f80338sfiwk:*
4576c1a9ef54cd1e5555ee07d016a7f559f80338sfpcwl:*
9811aed12bbc71783d2e544ccb5fecd193843eadsfpcan:*
9811aed12bbc71783d2e544ccb5fecd193843eadsfral:*
9811aed12bbc71783d2e544ccb5fecd193843eadsfrtw:*
88fac54d9d64f85bbdab5d7010816f4377f95bd7rjungrum:*
88fac54d9d64f85bbdab5d7010816f4377f95bd7rjungrwn:*
bd3f5647b96d378d9c75c954e3f13582af32c643sfural:*
bd3f5647b96d378d9c75c954e3f13582af32c643sfurtw:*
bd3f5647b96d378d9c75c954e3f13582af32c643sfwpi:*
bd3f5647b96d378d9c75c954e3f13582af32c643sfzyd:*
bd3f5647b96d378d9c75c954e3f13582af32c643sfafe:*
2a7beea91d46beb41f043a84eaad060047ee04aafabiendmfe:*
2a7beea91d46beb41f043a84eaad060047ee04aafabienmxfe:*
2a7beea91d46beb41f043a84eaad060047ee04aafabienbmc:bmc
2a7beea91d46beb41f043a84eaad060047ee04aafabiendld:*
584a85dd4047e38d3ed3a29b6662fcc9d100ae4csfaggr:*
584a85dd4047e38d3ed3a29b6662fcc9d100ae4csfsmbios:smbios
584a85dd4047e38d3ed3a29b6662fcc9d100ae4csfzfs:*
f21e9e3d0bfb7a507ecc5bc963f2159d693503d1sfzfs:zfs
f21e9e3d0bfb7a507ecc5bc963f2159d693503d1sfscsi_vhci:*
f21e9e3d0bfb7a507ecc5bc963f2159d693503d1sfkssl:*
f6b9c755a0b793e8a3a3aebd327ca20a86478117sffbt:fbt
f6b9c755a0b793e8a3a3aebd327ca20a86478117sfprofile:profile
f6b9c755a0b793e8a3a3aebd327ca20a86478117sfsdt:sdt
132ee6ac1c26d6e8953836316ba50734eefab47bsfsoftmac:*
132ee6ac1c26d6e8953836316ba50734eefab47bsfsystrace:systrace
132ee6ac1c26d6e8953836316ba50734eefab47bsflx_ptm:lx_ptmajor
85eacfc96a04547ef25aabbc06440039715084c2jortonlx_systrace:*
85eacfc96a04547ef25aabbc06440039715084c2jortonphysmem:*
85eacfc96a04547ef25aabbc06440039715084c2jortonasy:*
536d2e7cd1fdec1255b8c3bdf41fdc714c506a54trawickasy:*,cu
536d2e7cd1fdec1255b8c3bdf41fdc714c506a54trawickucode:*
536d2e7cd1fdec1255b8c3bdf41fdc714c506a54trawickacpi_drv:*
536d2e7cd1fdec1255b8c3bdf41fdc714c506a54trawicksmbsrv:*
79c5787b92ac5f0e1cc82393816c77a006399316trawickvscan:*
79c5787b92ac5f0e1cc82393816c77a006399316trawicknsmb:*
79c5787b92ac5f0e1cc82393816c77a006399316trawickballoon:*
79c5787b92ac5f0e1cc82393816c77a006399316trawickdomcaps:*
c967bf3bc89e8aa60dbd30d9da388e448ddc1cc4trawickevtchn:*
79c5787b92ac5f0e1cc82393816c77a006399316trawickprivcmd:*
79c5787b92ac5f0e1cc82393816c77a006399316trawickxenbus:*
79c5787b92ac5f0e1cc82393816c77a006399316trawickfm:*
79c5787b92ac5f0e1cc82393816c77a006399316trawickamd_iommu:*
79c5787b92ac5f0e1cc82393816c77a006399316trawickxpvtap:*
7b395e4e878c28a4784919cfd2e704ddd14a3390jortonEOF
7b395e4e878c28a4784919cfd2e704ddd14a3390jorton}
7b395e4e878c28a4784919cfd2e704ddd14a3390jorton
7b395e4e878c28a4784919cfd2e704ddd14a3390jortonPATH="/sbin:/usr/sbin:/usr/bin:/usr/sadm/install/bin"
536e48c08d674acac5d44929318f2ad928edc361jortonexport PATH
536e48c08d674acac5d44929318f2ad928edc361jorton
e81785da447b469da66f218b3f0244aab507958djorton# Internal routine to create a sed script which can be used to
e81785da447b469da66f218b3f0244aab507958djorton# escape all shell globbing metacharacters in a path.
3e4e54d4e3fc0123c63d57aa84ac7ad7a8c73ff8jorton
3e4e54d4e3fc0123c63d57aa84ac7ad7a8c73ff8jortoncreate_esc_sedscript()
3e4e54d4e3fc0123c63d57aa84ac7ad7a8c73ff8jorton{
53e9b27aba029b18be814df40bcf6f0428771d1efuankgcat > /tmp/esc.sed.$$ << EOF
53e9b27aba029b18be814df40bcf6f0428771d1efuankgs/\*/\\\\*/g
53e9b27aba029b18be814df40bcf6f0428771d1efuankgs/\?/\\\\?/g
53e9b27aba029b18be814df40bcf6f0428771d1efuankgs/\[/\\\\[/g
53e9b27aba029b18be814df40bcf6f0428771d1efuankgs/\]/\\\\]/g
6bb524f1895f30265a1431afc460977d391cb36bsfEOF
6bb524f1895f30265a1431afc460977d391cb36bsf}
ca61ccd0c306c2c72df153688ba1b49f3eceed80sf
6bb524f1895f30265a1431afc460977d391cb36bsf# Internal routine to convert an entry in a /tmp/chwhatever.$$ file to
e6dd71992459d05a676b98b7963423dc5dc1e24aminfrin# an appropriately escaped pattern which can be used to grep into minor_perm.
e6dd71992459d05a676b98b7963423dc5dc1e24aminfrin
e6dd71992459d05a676b98b7963423dc5dc1e24aminfrinentry2pattern()
e6dd71992459d05a676b98b7963423dc5dc1e24aminfrin{
23f1535d6a60817d2846bac0aea230ea475d7dccminfrin # the first argument is the 'key' field from the change file.
23f1535d6a60817d2846bac0aea230ea475d7dccminfrin # entries can contain shell globbing characters to match
23f1535d6a60817d2846bac0aea230ea475d7dccminfrin # several devices - hence all the palaver below.
23f1535d6a60817d2846bac0aea230ea475d7dccminfrin
ec7520b24cd80d34d82bbcaca153cbb23cc04bc0rjung printf '%s' `echo "$1" | sed \
ec7520b24cd80d34d82bbcaca153cbb23cc04bc0rjung -e 's/\*/\\\\*/g' -e 's/\?/\\\\?/g' \
ec7520b24cd80d34d82bbcaca153cbb23cc04bc0rjung -e 's/\./\\\\./g' -e 's/\[/\\\\[/g' \
ec7520b24cd80d34d82bbcaca153cbb23cc04bc0rjung -e 's/\]/\\\\]/g'`
ec7520b24cd80d34d82bbcaca153cbb23cc04bc0rjung shift
ec7520b24cd80d34d82bbcaca153cbb23cc04bc0rjung
ec7520b24cd80d34d82bbcaca153cbb23cc04bc0rjung # the remaining optional arguments are tokens separated by white-space
ec7520b24cd80d34d82bbcaca153cbb23cc04bc0rjung
6249dfa569d3b4f1f539665b979a80c6e335d93etrawick if [ $# = 0 ] ; then
6249dfa569d3b4f1f539665b979a80c6e335d93etrawick printf '[ \t]'
0827cb14e550f6f65018431c22c2c913631c8f25kbrand else
6249dfa569d3b4f1f539665b979a80c6e335d93etrawick while [ -n "$1" ]
ae600ca541efc686b34f8b1f21bd3d0741d37674covener do
6249dfa569d3b4f1f539665b979a80c6e335d93etrawick printf '[ \t][ \t]*%s' $1
cfa64348224b66dd1c9979b809406c4d15b1c137fielding shift
74499a117b3b2cd9666715a14f90c0e5d1a4ee8ajim done
cfa64348224b66dd1c9979b809406c4d15b1c137fielding printf '[ \t]*$'
74499a117b3b2cd9666715a14f90c0e5d1a4ee8ajim fi
cfa64348224b66dd1c9979b809406c4d15b1c137fielding}
74499a117b3b2cd9666715a14f90c0e5d1a4ee8ajim
cfa64348224b66dd1c9979b809406c4d15b1c137fieldingwhile read src dest
74499a117b3b2cd9666715a14f90c0e5d1a4ee8ajimdo
cfa64348224b66dd1c9979b809406c4d15b1c137fielding 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