joe7210m
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-ID: 221886

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

Ausgedruckt am: 13.11.2024 um 10:11 Uhr

server-coach
server-coach 13.11.2013 um 21:31:21 Uhr
Goto Top
Hi,

unter welchen Benutzer/Gruppe wird das Script ausgeführt ?
joe7210m
joe7210m 13.11.2013 um 21:41:00 Uhr
Goto Top
Hallo,
hab es unter root und dem Nutzer probiert.
64748
64748 15.11.2013 aktualisiert um 21:47:27 Uhr
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