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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 221886
Url: https://administrator.de/contentid/221886
Ausgedruckt am: 13.11.2024 um 10:11 Uhr
3 Kommentare
Neuester Kommentar
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
Ich vermute, dass Du in den if [ ... ] Anweisungen so etwas meinst
und
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
Zum Lernen von Bash hilft das hier, für die udev-rules dieses leider etwas veraltete Tutorial, die Syntax ist nicht mehr aktuell.
Markus
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"
$(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