i.minorperm_i386 revision 4eaa471005973e11a6110b69fe990530b3b95a38
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews# CDDL HEADER START
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# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# See the License for the specific language governing permissions
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# and limitations under the License.
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]
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox User# CDDL HEADER END
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Use is subject to license terms.
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# - 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# - If an existing entry must be deleted, add it to
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# the list produced by make_delete_list below.
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# - 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
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# <device>:<minor> <old_attrs> <new_attrs> <optional list of logical
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# devices whose attributes
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# will need to be changed>
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# where an <attribute list> := <perm> <user> <group>
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 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*
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# <device>:<minor> <optional list of logical devices to be deleted>
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntconsfb:consfb
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:ipsecah
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:ipsecesp
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntprofile:profile
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 Huntcat > /tmp/add.$$ << EOF
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntdevinfo:devinfo
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntopeneepr:openprom
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntipsecah:ipsecah
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntipsecesp:ipsecesp
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntkeysock:keysock
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userspdsock:spdsock
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userdevinfo:devinfo,ro
6b7cba2b10d6cb5363d94b434b0d22ecfb33a6f3Tinderbox Usercryptoadm:cryptoadm
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userfasttrap:fasttrap
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntclone:myri10ge
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntsmbios:smbios
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntprofile:profile
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntsystrace:systrace
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntlx_ptm:lx_ptmajor
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserPATH="/sbin:/usr/sbin:/usr/bin:/usr/sadm/install/bin"
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User# Internal routine to create a sed script which can be used to
e62b9c9ce6413fb183c8116381e75dcd07ca5517Tinderbox User# escape all shell globbing metacharacters in a path.
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.
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.
6758b59e57af88bdf466e63c0856043df44f8dd0Tinderbox User # the remaining optional arguments are tokens separated by white-space
6758b59e57af88bdf466e63c0856043df44f8dd0Tinderbox User if [ $# = 0 ] ; then
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User if [ ! -f $dest ] ; then
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.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt while read key oldp oldu oldg newp newu newg chdevs
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 grepstr=`entry2pattern "${key}" $oldp $oldu $oldg`
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 if [ $? != 0 ] ; then
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User if [ $do_chdevs = yes -a "$chdevs" != "" ] ; then
46472a450e043434d78fa18edc73bca8c47f3981Tinderbox User # sort the "change attributes" list
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.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # Apply the sed script possibly built above to the
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # currently-installed /etc/minor_perm file.
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
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if [ -s /tmp/chdevs.$$ -a "$PKG_INSTALL_ROOT" != "" -a \
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User while read device oldp oldu oldg newp newu newg
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.
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 if [ -s /tmp/deldevs.$$ -a "$PKG_INSTALL_ROOT" != "" -a \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if [ $? != 0 ] ; then