joe72ka
Goto Top

Udev Regel funktioniert leider nicht - Linuxmint - Cinnamon

Hallo, ich nutze eine udev Regel um nur bestimmte USB Geräte zuzulassen. Die Regel ist im richtigen Verzeichnis und wird bei udevadm test auch aufgelistet.

KERNEL=="sd[b-z]", ATTRS{serial}=="*", PROGRAM+="/usr/share/video/script.sh %s{serial} %k"

In der script.sh ist folgendes Enthalten #!/bin/bash if [ biosdecode | grep ALASKA | cut -d: -f2 | cut -d\ -f2 = "ALASKA" ]; then if [ grep $1 /usr/share/video/serials.txt ] && [ "$1" != "" ]; then exit 0 else /usr/bin/eject $2 exit 1 fi else /usr/bin/eject $2 exit 1 fi

Das Script ist auch Ausführen als Programm hinterlegt.

Die Datei serials ist auch vorhanden.

Was mach ich falsch oder wie kann ich z.B. prüfen ob und wie die Regel abgearbeitet wird.

Sorry bin total Linux Neuling.

DANKE Ralf

Content-Key: 221886

Url: https://administrator.de/contentid/221886

Printed on: April 25, 2024 at 14:04 o'clock

Member: server-coach
server-coach Nov 13, 2013 at 20:31:21 (UTC)
Goto Top
Hi,

unter welchen Benutzer/Gruppe wird das Script ausgeführt ?
Member: Joe72ka
Joe72ka Nov 13, 2013 at 20:41:00 (UTC)
Goto Top
Hallo,
hab es unter root und dem Nutzer probiert.
Mitglied: 64748
64748 Nov 15, 2013 updated at 20:47:27 (UTC)
Goto Top
Hallo,

es wäre hilfreich, wenn Du Dein Skript richtig formatieren würdest und uns verrätst, was es machen soll. Vermutlich soll es so aussehen
#!/bin/bash 
if [ biosdecode | grep ALASKA | cut -d: -f2 | cut -d\ -f2 = "ALASKA" ];   
then 
  if [ grep $1 /usr/share/video/serials.txt ] && [ "$1" != "" ];   
  then 
    exit 0 
  else 
    /usr/bin/eject $2 
    exit 1 
  fi 
else 
  /usr/bin/eject $2 
  exit 1 
fi

Ich vermute, dass Du in den if [ ... ] Anweisungen so etwas meinst
$(biosdecode | grep ALASKA | cut -d: -f2 | cut -d\ -f2) = "ALASKA"
und
$(grep $1 /usr/share/video/serials.txt)

Zunächst musst Du ausprobieren, ob das Skript das macht, was Du erwartest, wenn nicht, dann teste die Einzelteile des Skripts, Zeile für Zeile.

Ob die udev-rule ausgeführt wird, kannst Du mit einem einfachen Skript testen, welches einfach nur "Hallo" (z.B.) ausgibt, also
#!/bin/bash
echo Hallo

Zum Lernen von Bash hilft das hier, für die udev-rules dieses leider etwas veraltete Tutorial, die Syntax ist nicht mehr aktuell.

Markus