* an SUBSYSTEM-based approach to rules
@ 2005-04-09 17:32 Marco d'Itri
2005-04-10 2:01 ` Alexander E. Patrakov
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Marco d'Itri @ 2005-04-09 17:32 UTC (permalink / raw)
To: linux-hotplug
[-- Attachment #1.1: Type: text/plain, Size: 362 bytes --]
These are the new rules files used by the debian udev package.
The interesting parts are the usage of SYSFS{type}, SYSFS{removable} and
SUBSYSTEM attributes to assign the default permissions for the devices.
This allows removing a lot of rules, e.g. now permissions for all block
devices except cdroms are assigned with just two rules.
--
ciao,
Marco
[-- Attachment #1.2: permissions.rules --]
[-- Type: text/plain, Size: 2122 bytes --]
# default permissions for block devices
SUBSYSTEM="block", GROUP="disk"
SUBSYSTEM="block", SYSFS{removable}="1", GROUP="floppy"
# IDE devices
BUS="ide", KERNEL="hd[a-z]", SYSFS{removable}="1", \
PROGRAM="/bin/cat /proc/ide/%k/media", RESULT="cdrom*", GROUP="cdrom"
BUS="ide", KERNEL="ht[0-9]*", GROUP="tape"
BUS="ide", KERNEL="nht[0-9]*", GROUP="tape"
# SCSI devices
BUS="scsi", SYSFS{type}="1", GROUP="tape"
BUS="scsi", SYSFS{type}="5", GROUP="cdrom"
BUS="scsi", SYSFS{type}="6", GROUP="scanner"
# USB devices
BUS="usb", KERNEL="legousbtower*", MODE="0666"
# serial devices
SUBSYSTEM="tty", GROUP="dialout"
SUBSYSTEM="capi", GROUP="dialout"
# vc devices (all members of the tty subsystem)
KERNEL="ptmx", MODE="0666", GROUP="root"
KERNEL="console", MODE="0600", GROUP="root"
KERNEL="tty", MODE="0666", GROUP="root"
KERNEL="tty[0-9]*", GROUP="root"
# video devices
SUBSYSTEM="video4linux", GROUP="video"
SUBSYSTEM="dvb", GROUP="video"
SUBSYSTEM="graphics", GROUP="video"
SUBSYSTEM="nvidia", GROUP="video"
SUBSYSTEM="drm", GROUP="video"
# misc devices
KERNEL="random", MODE="0666"
KERNEL="urandom", MODE="0444"
KERNEL="mem", MODE="0640", GROUP="kmem"
KERNEL="kmem", MODE="0640", GROUP="kmem"
KERNEL="port", MODE="0640", GROUP="kmem"
KERNEL="full", MODE="0666"
KERNEL="null", MODE="0666"
KERNEL="zero", MODE="0666"
KERNEL="inotify", MODE="0666"
KERNEL="sgi_fetchop", MODE="0666"
KERNEL="sonypi", MODE="0666"
KERNEL="agpgart", GROUP="video"
KERNEL="nvram", GROUP="nvram"
KERNEL="rtc", MODE="0660", GROUP="audio"
KERNEL="cdemu[0-9]*", GROUP="cdrom"
KERNEL="pktcdvd[0-9]*", GROUP="cdrom"
KERNEL="pktcdvd", MODE="0644"
# printers and parallel devices
SUBSYSTEM="printer", GROUP="lp"
SUBSYSTEM="ppdev", GROUP="lp"
KERNEL="pt[0-9]*", GROUP="tape"
KERNEL="pht[0-9]*", GROUP="tape"
# sound devices
SUBSYSTEM="sound", GROUP="audio"
# input devices
KERNEL="event[0-9]*", PROGRAM="/etc/udev/scripts/inputdev.sh %k", \
RESULT="inputdev", MODE="0664", GROUP="video"
KERNEL="js[0-9]*", MODE="0664"
# AOE character devices
SUBSYSTEM="aoe", MODE="0220", GROUP="disk"
SUBSYSTEM="aoe", KERNEL="err", MODE="0440"
[-- Attachment #1.3: devfs.rules --]
[-- Type: text/plain, Size: 4621 bytes --]
# There are a number of modifiers that are allowed to be used in some
# of the different fields. They provide the following subsitutions:
#
# %n the "kernel number" of the device.
# For example, 'sda3' has a "kernel number" of '3'
# %e the smallest number for that name which does not matches an existing node
# %k the kernel name for the device.
# %M the kernel major number for the device
# %m the kernel minor number for the device
# %b the bus id for the device
# %c the string returned by the PROGRAM
# %s{filename} the content of a sysfs attribute.
# %% the '%' char itself.
#
# workaround for devices which do not report media changes
BUS="ide", KERNEL="hd[a-z]", SYSFS{removable}="1", \
PROGRAM="/etc/udev/scripts/ide-model.sh %k", RESULT="IOMEGA ZIP *", \
OPTIONS="all_partitions", NAME="%k"
# IDE devices
BUS="ide", KERNEL="hd[a-z]*", \
PROGRAM="/etc/udev/scripts/ide-devfs.sh %k %b %n", \
NAME="%c{1}", SYMLINK="%k %c{2}"
# SCSI devices
BUS="scsi", PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", \
NAME="%c{1}", SYMLINK="%k %c{2}"
# RAID controllers
KERNEL="cciss!*", PROGRAM="/etc/udev/scripts/raid-devfs.sh %k", \
NAME="%c{1}", SYMLINK="%k"
KERNEL="ida!*", PROGRAM="/etc/udev/scripts/raid-devfs.sh %k", \
NAME="%c{1}", SYMLINK="%k"
KERNEL="rd!*", PROGRAM="/etc/udev/scripts/raid-devfs.sh %k", \
NAME="%c{1}", SYMLINK="%k"
# other block devices
KERNEL="md[0-9]*", NAME="md/%n",
KERNEL="loop[0-9]*", NAME="loop/%n"
KERNEL="ram[0-9]*", NAME="rd/%n"
# USB devices
BUS="usb", KERNEL="auer[0-9]*", NAME="usb/%k"
BUS="usb", KERNEL="cpad[0-9]*", NAME="usb/%k"
BUS="usb", KERNEL="dabusb*", NAME="usb/%k"
BUS="usb", KERNEL="hiddev*", NAME="usb/%k"
BUS="usb", KERNEL="legousbtower*", NAME="usb/%k"
BUS="usb", KERNEL="lp[0-9]*", NAME="usb/%k"
BUS="usb", KERNEL="ttyUSB*", SYSFS{product}="Palm Handheld*", SYMLINK="pilot"
# serial devices
KERNEL="ttyS[0-9]*", NAME="tts/%n"
KERNEL="ttyUSB[0-9]*", NAME="tts/USB%n"
KERNEL="rfcomm[0-9]*", NAME="bluetooth/rfcomm/%n",
KERNEL="capi", NAME="capi20", SYMLINK="isdn/capi20"
KERNEL="capi[0-9]*", NAME="capi/%n"
# vc devices
KERNEL="tty[0-9]*", NAME="vc/%n"
KERNEL="vcs", NAME="vcc/0"
KERNEL="vcs[0-9]*", NAME="vcc/%n"
KERNEL="vcsa", NAME="vcc/a0"
KERNEL="vcsa[0-9]*", NAME="vcc/a%n"
# video devices
KERNEL="video[0-9]*", NAME="v4l/%k"
KERNEL="radio[0-9]*", NAME="v4l/%k"
KERNEL="vbi[0-9]*", NAME="v4l/%k"
KERNEL="vtx[0-9]*", NAME="v4l/%k"
KERNEL="dvb*", PROGRAM="/etc/udev/scripts/dvb.sh %k", NAME="%c"
KERNEL="fb[0-9]*", NAME="fb/%n"
KERNEL="card[0-9]*", NAME="dri/%k"
# misc devices
KERNEL="apm_bios", NAME="misc/%k",
KERNEL="agpgart", NAME="misc/%k"
KERNEL="nvram", NAME="misc/%k"
KERNEL="psaux", NAME="misc/%k"
KERNEL="rtc", NAME="misc/%k"
KERNEL="hw_random", NAME="hwrng"
# printers and parallel devices
KERNEL="lp[0-9]*", NAME="printers/%n"
KERNEL="parport[0-9]*", NAME="parports/%n"
KERNEL="i2c-[0-9]*", NAME="i2c/%n"
KERNEL="fd[0-9]*", NAME="floppy/%n"
KERNEL="cdemu[0-9]*", NAME="cdemu/%n"
KERNEL="pktcdvd[0-9]*", NAME="pktcdvd/%n"
KERNEL="pktcdvd", NAME="pktcdvd/control"
KERNEL="cpu[0-9]*", NAME="cpu/%n/cpuid"
KERNEL="msr[0-9]*", NAME="cpu/%n/msr"
KERNEL="microcode", NAME="cpu/microcode"
KERNEL="umad*", NAME="infiniband/%k"
KERNEL="issm*", NAME="infiniband/%k"
KERNEL="tap[0-9]*", NAME="net/%k"
KERNEL="tun", NAME="net/%k"
# sound devices
KERNEL="controlC[0-9]*", NAME="snd/%k"
KERNEL="hwC[D0-9]*", NAME="snd/%k"
KERNEL="pcmC[D0-9cp]*", NAME="snd/%k"
KERNEL="midiC[D0-9]*", NAME="snd/%k"
KERNEL="timer", NAME="snd/%k"
KERNEL="seq", NAME="snd/%k"
KERNEL="audio*", NAME="sound/%k"
KERNEL="dsp*", NAME="sound/%k"
KERNEL="adsp*", NAME="sound/%k"
KERNEL="midi*", NAME="sound/%k"
KERNEL="mixer*", NAME="sound/%k"
KERNEL="sequencer*", NAME="sound/%k"
KERNEL="amidi*", NAME="sound/%k"
KERNEL="dmmidi*", NAME="sound/%k"
KERNEL="admmidi*", NAME="sound/%k"
# input devices
KERNEL="mice", NAME="input/%k"
KERNEL="mouse[0-9]*", NAME="input/%k"
KERNEL="event[0-9]*", NAME="input/%k"
KERNEL="js[0-9]*", NAME="input/%k"
KERNEL="ts[0-9]*", NAME="input/%k"
KERNEL="uinput", NAME="input/%k"
# Zaptel
KERNEL="zapctl", NAME="zap/ctl"
KERNEL="zaptimer", NAME="zap/timer"
KERNEL="zapchannel", NAME="zap/channel"
KERNEL="zappseudo", NAME="zap/pseudo"
KERNEL="zap[0-9]*", NAME="zap/%n"
# AOE character devices
SUBSYSTEM="aoe", KERNEL="discover", NAME="etherd/%k"
SUBSYSTEM="aoe", KERNEL="err", NAME="etherd/%k"
SUBSYSTEM="aoe", KERNEL="interfaces", NAME="etherd/%k"
# device mapper creates its own device nodes, so ignore these
KERNEL="dm-[0-9]*", OPTIONS="ignore_device"
KERNEL="device-mapper", NAME="mapper/control"
[-- Attachment #1.4: udev.rules --]
[-- Type: text/plain, Size: 2884 bytes --]
# There are a number of modifiers that are allowed to be used in some
# of the different fields. They provide the following subsitutions:
#
# %n the "kernel number" of the device.
# For example, 'sda3' has a "kernel number" of '3'
# %e the smallest number for that name which does not matches an existing node
# %k the kernel name for the device.
# %M the kernel major number for the device
# %m the kernel minor number for the device
# %b the bus id for the device
# %c the string returned by the PROGRAM
# %s{filename} the content of a sysfs attribute.
# %% the '%' char itself.
#
# workaround for devices which do not report media changes
BUS="ide", KERNEL="hd[a-z]", SYSFS{removable}="1", \
PROGRAM="/etc/udev/scripts/ide-model.sh %k", RESULT="IOMEGA ZIP *", \
OPTIONS="all_partitions", NAME="%k"
# SCSI devices
BUS="scsi", KERNEL="sr[0-9]*", NAME="scd%n", SYMLINK="sr%n"
# USB devices
BUS="usb", KERNEL="hiddev*", NAME="usb/%k"
BUS="usb", KERNEL="auer[0-9]*", NAME="usb/%k"
BUS="usb", KERNEL="legousbtower*", NAME="usb/%k"
BUS="usb", KERNEL="dabusb*", NAME="usb/%k"
BUS="usb", KERNEL="cpad[0-9]*", NAME="usb/%k"
BUS="usb", KERNEL="lp[0-9]*", NAME="usb/%k"
BUS="usb", KERNEL="ttyUSB*", SYSFS{product}="Palm Handheld*", SYMLINK="pilot"
# serial devices
KERNEL="capi", NAME="capi20", SYMLINK="isdn/capi20"
KERNEL="capi[0-9]*", NAME="capi/%n"
# video devices
KERNEL="dvb*", PROGRAM="/etc/udev/scripts/dvb.sh %k", NAME="%c"
KERNEL="card[0-9]*", NAME="dri/%k"
# misc devices
KERNEL="hw_random", NAME="hwrng"
KERNEL="cdemu[0-9]*", NAME="cdemu/%n"
KERNEL="pktcdvd[0-9]*", NAME="pktcdvd/%n"
KERNEL="pktcdvd", NAME="pktcdvd/control"
KERNEL="cpu[0-9]*", NAME="cpu/%n/cpuid"
KERNEL="msr[0-9]*", NAME="cpu/%n/msr"
KERNEL="microcode", NAME="cpu/microcode"
KERNEL="umad*", NAME="infiniband/%k"
KERNEL="issm*", NAME="infiniband/%k"
KERNEL="tap[0-9]*", NAME="net/%k"
KERNEL="tun", NAME="net/%k"
# ALSA devices
KERNEL="controlC[0-9]*", NAME="snd/%k"
KERNEL="hwC[D0-9]*", NAME="snd/%k"
KERNEL="pcmC[D0-9cp]*", NAME="snd/%k"
KERNEL="midiC[D0-9]*", NAME="snd/%k"
KERNEL="timer", NAME="snd/%k"
KERNEL="seq", NAME="snd/%k"
# input devices
KERNEL="mice", NAME="input/%k"
KERNEL="mouse[0-9]*", NAME="input/%k"
KERNEL="event[0-9]*", NAME="input/%k"
KERNEL="js[0-9]*", NAME="input/%k"
KERNEL="ts[0-9]*", NAME="input/%k"
KERNEL="uinput", NAME="input/%k"
# Zaptel
KERNEL="zapctl", NAME="zap/ctl"
KERNEL="zaptimer", NAME="zap/timer"
KERNEL="zapchannel", NAME="zap/channel"
KERNEL="zappseudo", NAME="zap/pseudo"
KERNEL="zap[0-9]*", NAME="zap/%n"
# AOE character devices
SUBSYSTEM="aoe", KERNEL="discover", NAME="etherd/%k"
SUBSYSTEM="aoe", KERNEL="err", NAME="etherd/%k"
SUBSYSTEM="aoe", KERNEL="interfaces", NAME="etherd/%k"
# device mapper creates its own device nodes, so ignore these
KERNEL="dm-[0-9]*", OPTIONS="ignore_device"
KERNEL="device-mapper", NAME="mapper/control"
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: an SUBSYSTEM-based approach to rules
2005-04-09 17:32 an SUBSYSTEM-based approach to rules Marco d'Itri
@ 2005-04-10 2:01 ` Alexander E. Patrakov
2005-04-10 11:34 ` Kay Sievers
2005-04-10 11:36 ` Marco d'Itri
2 siblings, 0 replies; 4+ messages in thread
From: Alexander E. Patrakov @ 2005-04-10 2:01 UTC (permalink / raw)
To: linux-hotplug
On Saturday 09 April 2005 23:32, Marco d'Itri wrote:
> These are the new rules files used by the debian udev package.
> KERNEL="tap[0-9]*", NAME="net/%k"
Is this right? tap[0-9]* is an interface name, not device name. After
modprobing tun there is only /dev/net/tun device, to be used both for tunX
and tapX interfaces. Try installing qemu in order to test the tun0 interface.
Try compiling and installing VDE to learn more about tap0.
--
Alexander E. Patrakov
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_ide95&alloc_id\x14396&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: an SUBSYSTEM-based approach to rules
2005-04-09 17:32 an SUBSYSTEM-based approach to rules Marco d'Itri
2005-04-10 2:01 ` Alexander E. Patrakov
@ 2005-04-10 11:34 ` Kay Sievers
2005-04-10 11:36 ` Marco d'Itri
2 siblings, 0 replies; 4+ messages in thread
From: Kay Sievers @ 2005-04-10 11:34 UTC (permalink / raw)
To: linux-hotplug
On Sat, 2005-04-09 at 19:32 +0200, Marco d'Itri wrote:
> These are the new rules files used by the debian udev package.
> The interesting parts are the usage of SYSFS{type}, SYSFS{removable} and
> SUBSYSTEM attributes to assign the default permissions for the devices.
> This allows removing a lot of rules, e.g. now permissions for all block
> devices except cdroms are assigned with just two rules.
Great! Looks really nice! And it seems it was the right decision to
merge the permissions with the rules. I've applied it to my tree.
Thanks,
Kay
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_ide95&alloc_id\x14396&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: an SUBSYSTEM-based approach to rules
2005-04-09 17:32 an SUBSYSTEM-based approach to rules Marco d'Itri
2005-04-10 2:01 ` Alexander E. Patrakov
2005-04-10 11:34 ` Kay Sievers
@ 2005-04-10 11:36 ` Marco d'Itri
2 siblings, 0 replies; 4+ messages in thread
From: Marco d'Itri @ 2005-04-10 11:36 UTC (permalink / raw)
To: linux-hotplug
On Apr 10, "Alexander E. Patrakov" <patrakov@ums.usu.ru> wrote:
> > KERNEL="tap[0-9]*", NAME="net/%k"
> Is this right? tap[0-9]* is an interface name, not device name. After
Probably not, I think I copied it from some old rules file.
I will remove it in the next release.
--
ciao,
Marco
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_ide95&alloc_id\x14396&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2005-04-10 11:36 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-04-09 17:32 an SUBSYSTEM-based approach to rules Marco d'Itri
2005-04-10 2:01 ` Alexander E. Patrakov
2005-04-10 11:34 ` Kay Sievers
2005-04-10 11:36 ` Marco d'Itri
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).