USB-Speichersticks und externe Festplatten unterscheiden

Hinweis: In dem Thema USB-Speichersticks und externe Festplatten unterscheiden gibt es 9 Antworten. Der letzte Beitrag () befindet sich ganz unten auf dieser Seite.
  • Liebe Forums-User,


    gibt es eine Möglichkeit, wie ich per bash-Skript unterscheiden kann, ob ein USB-Stick oder eine externe Festplatte an einen USB-Anschluss angeschlossen wurde?


    Mit freundlichen Grüßen,


    Alexander Blum

  • Ich denke, dass das nicht ganz einfach ist, denn beide werden vom System als Block-devices angesprochen. Unterscheidungsmerkmale
    können u.a. sein das Dateisystem, die Vendor-ID, die Geräte-ID...
    Somit muss das Skript einiges prüfen um die Sache einzuschränken, wobei ich nicht sicher bin, ob das immer zielführend ist. Ein guter Befehl, der hier sehr hilfreich und aufschlussreich die Dinge darstellt ist:


    Code
    blkid -c /dev/null

    Besser Du wartest noch mal ein bisschen ab - hier gibt es einige im Forum die können Dir viel besser helfen - die findest Du im übrigen auch hier.

    be tolerant - not ignorant
    Alle Hunde sind schwarz.
    Es gibt einen Hund der nicht weiß ist.

    Für den Inhalt des Beitrages 96884 haftet ausdrücklich der jeweilige Autor: Boreas

  • Ja, blkid oder auch lsusb, natürlich mit entsprechenden Parametern/Filtern, siehe man <Befehl>, Ausgabe bei Bedarf in Datei umlenken oder Variable nutzen und nachfolgende Stringauswertung:
    Shell-Programmierung 2.3 Zeichenketten
    Die im Script zu lösenden Aufgaben hat Boreas beschrieben. Ein Trigger für den Scriptaufruf bei Anstecken des USB-Gerätes fällt mir ohne zu Googeln nicht ein. Ständiges Polling wirst du nicht durchführen wollen, Interrupt-Auswertung/Routine wäre eine Möglichkeit - vermutlich unter vielen anderen.


    Systemd gibt es auch, vielleicht hilft das Script dir:
    Automount USB drives with systemd - WhatWithHow.com
    Nach auto mount evtl. systemd nach Details abfragen, Kommando weiss ich jetzt nicht.


    auto mount geht auch per /etc/fstab. Damit hättest du Vergleichsmöglichkeiten für eine Stringverarbeitung.

    7 Mal editiert, zuletzt von Jana ()

    Für den Inhalt des Beitrages 96886 haftet ausdrücklich der jeweilige Autor: Jana

  • sudo wurde entwickelt, um einzelnen Nutzern erhöhte Rechte zu geben, z. B. als "minderbemittelte" Admins. Mal Server neu starten etc. Ubuntu nutzt dann den Extremfall, Nutzer=root.
    Könnte man also durchaus für deinen Zweck nutzen, Ersteres würde ich allerdings bevorzugen, Zweiteres vorerst zum Testen nutzen.

    Für den Inhalt des Beitrages 96900 haftet ausdrücklich der jeweilige Autor: Jana

  • Um es zu präzisieren: Den Mechanismus bzw. Skriptbefehl, den ich suche, muss mit einem normalen Benutzeraccount ohne sudo und ohne root ausführbar sein.

  • Ich denke mal, man kann auch einem Nutzer/Nutzergruppe erhöhte/spezielle Rechte auf einzelne Befehle geben. Dazu muss man sich mit der Rechteverwaltung unter Linux befassen.

    Für den Inhalt des Beitrages 96904 haftet ausdrücklich der jeweilige Autor: Jana

  • In diesem Forum gibt es einige Threads, die auf die Unterschiede zwischen su und sudo hinweisen. Bei openSUSE wird aus gutem Grund su präferiert.
    Jana hat Dir beschrieben was in Deinem Fall zu tun ist - aber über lege gut. Was Du da vorhast, kann immer auch negative sicherheitsrelevante Effekte zur Folge haben.
    (Das ist nur ein Rat und keine Besserwisserei ^^ )

    be tolerant - not ignorant
    Alle Hunde sind schwarz.
    Es gibt einen Hund der nicht weiß ist.

    Für den Inhalt des Beitrages 96907 haftet ausdrücklich der jeweilige Autor: Boreas

  • Hallo Leute,


    zunächst einmal danke für Eure Ratschläge. Aber ich habe eine Lösung gefunden:


    unter dem Gerätepfad, den man mit


    udevadm info /dev/sd[b-z] | grep DEVPATH


    bekommt, gibt es eine Datei namens removeable. In dieser Datei steht entweder eine 1 oder eine 0 drin. Steht in dieser Datei eine 1, handelt es sich um einen USB-Speicherstick, im Falle einer 0 um eine externe Festplatte.

  • Sehr guter Vorschlag. War mir nicht bekannt. Danke.

    be tolerant - not ignorant
    Alle Hunde sind schwarz.
    Es gibt einen Hund der nicht weiß ist.

    Für den Inhalt des Beitrages 96914 haftet ausdrücklich der jeweilige Autor: Boreas