• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

/dev/ttyS0 Zugriffsrechte

Hallo,

vor ab:
SuSe10.2
Will die Zugriffsrechte für /dev/ttyS[1-9] fest setzen, nur sie werden bei jedem Systemstart neu überschrieben...dachte es liegt an der Datei /etc/udev/rules.d/50-udev-default.....dort hae ich die Zeile erweitert um ein Mode="660"....dochd iese Änderungen werden nicht wirksam naxch einem Neustart..?
Code:
david@macdavid:/etc/udev/rules.d> cat 50-udev-default.rules
# console
KERNEL=="pty[pqrstuvwxyzabcdef][0123456789abcdef]", GROUP="tty", MODE="666", OPTIONS="last_rule"
KERNEL=="tty[pqrstuvwxyzabcdef][0123456789abcdef]", GROUP="tty", MODE="666", OPTIONS="last_rule"
KERNEL=="vcs*",                 GROUP="tty", MODE="620", OPTIONS="last_rule"
KERNEL=="vcsa*",                GROUP="tty", MODE="620", OPTIONS="last_rule"
KERNEL=="tty",                  GROUP="tty", MODE="666", OPTIONS="last_rule"
KERNEL=="tty[0-9]*",            GROUP="tty", MODE="620", OPTIONS="last_rule"
KERNEL=="console",              MODE="600", OPTIONS="last_rule"
KERNEL=="ptmx",                 GROUP="tty", MODE="666", OPTIONS="last_rule"

# serial devices
KERNEL=="tty[A-Z]*|pppox*|ircomm*|noz*", GROUP="uucp"
[b]#
#hier mein Eintrag
#
KERNEL=="ttyS[1-9]",            GROUP="uucp", MODE="660"
#[/b]
#
KERNEL=="hvc*|hvsi*",           GROUP="uucp"
KERNEL=="iseries/vtty*",        GROUP="uucp"
KERNEL=="mwave",                NAME="modems/%k", GROUP="uucp"
KERNEL=="ttyUSB*", ATTRS{product}=="[Pp]alm*Handheld*", SYMLINK+="pilot"
KERNEL=="ttyUSB*", ATTRS{product}=="[Hh]andspring*Treo*|[Hh]andspring*Visor*", SYMLINK+="pilot"

# video/graphics
SUBSYSTEM=="video4linux",       GROUP="video"
SUBSYSTEM=="graphics"           GROUP="video"
KERNEL=="vtx*|vbi*",            GROUP="video"
KERNEL=="winradio*",            GROUP="video"
KERNEL=="vttuner*",             GROUP="video"
KERNEL=="nvidia*|nvidiactl*",   GROUP="video"
KERNEL=="video0",               SYMLINK+="video"
KERNEL=="radio0",               SYMLINK+="radio"
KERNEL=="vbi0",                 SYMLINK+="vbi"
KERNEL=="pmu",                  GROUP="video"

# dvb
SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}'", NAME="%c", GROUP="video"

# input devices
KERNEL=="mouse*|mice",          NAME="input/%k", MODE="0640"
KERNEL=="event*",               NAME="input/%k", MODE="0640"
KERNEL=="js*",                  NAME="input/%k", MODE="0644"
KERNEL=="ts*",                  NAME="input/%k", MODE="0600"
KERNEL=="uinput",               NAME="input/%k", MODE="0600"
KERNEL=="lirc0",                SYMLINK+="lirc"

# printer
SUBSYSTEM=="usb",               KERNEL=="lp*", NAME="usb/%k", SYMLINK+="usb%k", GROUP="lp"
SUBSYSTEM=="printer",           KERNEL=="lp*", GROUP="lp"
KERNEL=="irlpt*",               GROUP="lp"

# cpu devices
KERNEL=="cpu[0-9]*",            NAME="cpu/%n/cpuid"
KERNEL=="msr[0-9]*",            NAME="cpu/%n/msr"
KERNEL=="microcode",            NAME="cpu/microcode", MODE="0600"

# IEEE1394 devices
KERNEL=="raw1394*",             GROUP="video"
KERNEL=="dv1394*",              SYMLINK+="dv1394/%n", GROUP="video"
KERNEL=="video1394*",           SYMLINK+="video1394/%n", GROUP="video"

KERNEL=="hw_random",            NAME="hwrng", SYMLINK+="%k"
KERNEL=="rioctl",               NAME="specialix_rioctl", SYMLINK+="%k"
KERNEL=="sxctl",                NAME="specialix_sxctl", SYMLINK+="%k"

# network
KERNEL=="tun",                  NAME="net/%k", MODE="0666"

# misc devices
KERNEL=="mem|kmem",             GROUP="kmem", MODE="640"
KERNEL=="port",                 GROUP="kmem", MODE="640"
KERNEL=="nvram",                GROUP="kmem", MODE="600"
KERNEL=="null",                 MODE="666"
KERNEL=="zero",                 MODE="666"
KERNEL=="full",                 MODE="622"
KERNEL=="random",               MODE="666"
KERNEL=="urandom",              MODE="644"
KERNEL=="rtc",                  MODE="600"
KERNEL=="sonypi",               MODE="0666"
KERNEL=="agpgart",              MODE="0600", GROUP="video"
KERNEL=="djs*",                 MODE="644"
KERNEL=="sgi_*",                MODE="666"
KERNEL=="rrom*",                MODE="400"
KERNEL=="rflash*",              MODE="400"
KERNEL=="usbscanner*",          MODE="644"
KERNEL=="3270/ttycons*",        MODE="600"
KERNEL=="3270/tub*",            MODE="666"
KERNEL=="3270/tubcons*",        MODE="600"
KERNEL=="ica",                  MODE="666"
KERNEL=="z90crypt",             MODE="666"
KERNEL=="mmtimer",              MODE="644"
KERNEL=="auer[0-9]*"            NAME="usb/%k"

# packet writing interface
KERNEL=="pktcdvd",              NAME="pktcdvd/control"
KERNEL=="pktcdvd[0-9]*",        NAME="pktcdvd/%k"

# fix floppy devices
KERNEL=="nvram", ACTION=="add", RUN+="load_floppy_module.sh"
KERNEL=="fd[0-9]*", ACTION=="add", ATTRS{cmos}=="*", RUN+="create_floppy_devices -c -t $attr{cmos} -m %M $root/%k"
KERNEL=="fd[0-9]*", ACTION=="remove", RUN+="/bin/rm -f $root/%k*"

# block devices
SUBSYSTEM=="block", GROUP="disk", MODE="0640"

# sd:           0 TYPE_DISK, 7 TYPE_MOD, 14 TYPE_RBC
# sr:           4 TYPE_WORM, 5 TYPE_ROM
# st/osst:      1 TYPE_TAPE
SUBSYSTEM=="scsi", ACTION=="add", ATTR{type}=="0|7|14", ATTR{timeout}="60"
SUBSYSTEM=="scsi", ACTION=="add", ATTR{type}=="1", ATTR{timeout}="900"
SUBSYSTEM=="scsi_device", ACTION=="add", ATTRS{type}=="0|7|14", RUN+="/sbin/modprobe sd_mod"
SUBSYSTEM=="scsi_device", ACTION=="add", ATTRS{type}=="1", ATTR{vendor}=="On[sS]tream", RUN+="/sbin/modprobe osst"
SUBSYSTEM=="scsi_device", ACTION=="add", ATTRS{type}=="1", RUN+="/sbin/modprobe st"
SUBSYSTEM=="scsi_device", ACTION=="add", ATTRS{type}=="[45]", RUN+="/sbin/modprobe sr_mod"
SUBSYSTEM=="scsi_device", ACTION=="add", RUN+="/sbin/modprobe sg"
KERNEL=="hd*", SUBSYSTEMS=="ide", ATTRS{media}=="floppy", OPTIONS+="all_partitions"
SUBSYSTEM=="ide", ACTION=="add", ATTR{media}=="tape", RUN+="/sbin/modprobe ide-scsi"
SUBSYSTEM=="mmc", ACTION=="add", RUN+="/sbin/modprobe mmc_block"

# misc storage devices (non-block)
KERNEL=="sg*",                  GROUP="disk", MODE="640"
KERNEL=="st*|nst*",             GROUP="disk"
KERNEL=="qft*|nqft*|zqft*|nzqft*|rawqft*|nrawqft", GROUP="disk"
KERNEL=="ht*|nht*",             GROUP="disk"
KERNEL=="pf*",                  GROUP="disk"
KERNEL=="sch*",                 GROUP="disk"
KERNEL=="pt*|npt*",             GROUP="disk"
KERNEL=="pg*",                  GROUP="disk"
KERNEL=="evms/block_device*",   GROUP="disk"
KERNEL=="rawctl*",              NAME="raw/%k", GROUP="disk"
SUBSYSTEM=="block", KERNEL=="raw[0-9]*", NAME="raw/%k", GROUP="disk"
KERNEL=="osst*|nosst*",         NAME="%k", GROUP="disk"
KERNEL=="iseries/vt*",          NAME="%k", GROUP="disk"
KERNEL=="iseries/nvt*",         NAME="%k", GROUP="disk"
KERNEL=="iseries/ibmsis*",      NAME="%k", GROUP="disk"

# libusb device access
SUBSYSTEM=="usb_device", ACTION=="add", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", NAME="%c", MODE="0644"

# kernel firmware loader
SUBSYSTEM=="firmware", ACTION=="add", RUN+="firmware.sh"

david@macdavid:/etc/udev/rules.d>

Nach einem Neustart sieht es immer wieder so aus:
david@macdavid:/etc/udev/rules.d> l /dev/ttyS*
crw-rw---- 1 root uucp 4, 64 25. Nov 2006 /dev/ttyS0
crw-rw---- 1 root uucp 4, 65 25. Nov 2006 /dev/ttyS1
crw-rw---- 1 root uucp 4, 66 25. Nov 2006 /dev/ttyS2
crw-rw---- 1 root uucp 4, 67 25. Nov 2006 /dev/ttyS3
crw------- 1 root uucp 4, 68 25. Nov 2006 /dev/ttyS4
crw------- 1 root uucp 4, 69 25. Nov 2006 /dev/ttyS5
crw------- 1 root uucp 4, 70 25. Nov 2006 /dev/ttyS6
crw------- 1 root uucp 4, 71 25. Nov 200

Diese permissions müssen irgendwo anders nochmal gesetzt werden...
 
Oh Mann, was ist das denn für eine Antwort...hast du dir überhaupt die Frage durchgelesen...?

Ich will einfach nur wissen, wie ich deN mechanismus modifiziere, der bei /dev/ttyS[0-9] die Rechte setzt....Die 50-udev-rules.d Datei ist es nciht, da hab ich es bereits eingestelölt, und den Code habe ich gepostet...

Die Frage war ja nicht, wie kann ich einem User den Zugriff aut ttyS--blabla geben...!
 
Ich habe mir nun selbst eine Regel angelegt

udev-ttyS.rules

Inhalt:

KERNEL="ttyS[0-7]", MODE="0660"

Aber es klappt dennoch nicht...was soll ich bloß tun...?
 
Schau dir mal die Fileliste von udev an.
rpm -q -l udev.

Du findest unter /lib/udev/devices/ einige Files und auch ttyS*
Ich hab's nicht ausprobiert, könnte mir aber vorstellen,
dass udev von dort bei jedem Start die Devices her nimmt.

Haveaniceday

Edit: Bei den eigenen Regeln kann ich mir vorstellen, dass wegen der Existenz (copy von /lib/udev/devices/...) deine Regeln
gar nicht aufgerufen werden. Das Device existiert ja schon.
 
A

Anonymous

Gast
LinuxAlien schrieb:
Nach einem Neustart sieht es immer wieder so aus:
david@macdavid:/etc/udev/rules.d> l /dev/ttyS*
crw-rw---- 1 root uucp 4, 64 25. Nov 2006 /dev/ttyS0
crw-rw---- 1 root uucp 4, 65 25. Nov 2006 /dev/ttyS1
crw-rw---- 1 root uucp 4, 66 25. Nov 2006 /dev/ttyS2
crw-rw---- 1 root uucp 4, 67 25. Nov 2006 /dev/ttyS3
crw------- 1 root uucp 4, 68 25. Nov 2006 /dev/ttyS4
crw------- 1 root uucp 4, 69 25. Nov 2006 /dev/ttyS5
crw------- 1 root uucp 4, 70 25. Nov 2006 /dev/ttyS6
crw------- 1 root uucp 4, 71 25. Nov 200
ich befürchte mal, entweder ist die Hardware nicht da, also nur 4 Serielle Schnittstellen im Rechner vorhanden oder es werden nur 4 über BIOS/ACPI erkannt, oder dein Kernel ist nur für 4 UARTs konfiguriert. wie es zB bei den aktuellen 64Bit Suse-Kerneln zu sein scheint. Wenn du auf mehr als 8 gehen willst, wirst du sowieso auf einen anderen Kernel umsteigen müssen oder dir selbst einen mit mehr UARTs konfigurieren.

Was Haveaniceday oben gesagt hat, stimmt soweit, diese Devices die dort unterhalb von /lib/udev/Devices sind werden beim starten in ein leeres /dev-Verzeichnis kopiert. Wenn du dort die Rechte von 4-7 auf 660 änderst, dann sind sie dann auch nach dem Start so gesetzt. Wenn du mehr als die 8 haben willst, musst du wahrscheiblich hier noch welche mit mknode anlegen müssen.

aber wie gesagt, schau erst mal ob da überhaupt Unterstützung und Geräte vorhanden sind und auch erkannt werden.
Code:
zgrep NR_UARTS /proc/config.gz

for i in 0 1 2 3 4 5 6 7; do udevinfo -q all -n ttyS$i; done

robi
 
Oben