Das Bash -Skript montiert mein Gerät nicht, wenn er von Udev aufgerufen wirdLinux

Linux verstehen
Guest
 Das Bash -Skript montiert mein Gerät nicht, wenn er von Udev aufgerufen wird

Post by Guest »

Ich versuche, eine UDEV -Regel zu erstellen, die mein Gerät über sein UUID montiert, damit ich nach dem Lesen in seinen Inhalt gelesen kann. < /p>
Meine Udev -Datei ist im lokalisiert

Code: Select all

/etc/udev/rules.d/99-local.rules
, [/b] und dies ist der Inhalt:

Code: Select all

ACTION=="add", ENV{ID_FS_UUID}=="12CB-F616", SYMLINK+="masterkey", RUN+="/usr/bin/mountkey.sh"

Das von der Udev -Regel ausgeführte Skript besteht darin:

Code: Select all

LOG_FILE="/tmp/key-mount.log"

sudo mount /dev/masterkey /mnt/masterkey > /tmp/key-mount.log

MOUNT_POINT="$(findmnt -n -o TARGET --source '/dev/masterkey')"

echo "$MOUNT_POINT" >> "$LOG_FILE"

if [ -n $MOUNT_POINT ]; then
echo "Device with UUID: $UUID mounted at $MOUNT_POINT" >> "$LOG_FILE"
else
echo "Error: Device with UUID: $UUID not mounted" >> "$LOG_FILE"
fi

Um den Befehlsstraße montage als Root auszuführen, ohne auf das Passwort zu warten, habe ich die bearbeitet

Code: Select all

/etc/sudoers
[/b] Datei mit visudo und fügte beide Zeilen mit dem nopasswd für montage für den Vagrant und root Benutzer. So wie folgt: < /p>

Code: Select all

root ALL=(ALL:ALL) ALL
root ALL=NOPASSWD:/usr/bin/mount
vagrant ALL= NOPASSWD: /usr/bin/mount
< /code>

Das [url=viewtopic.php?t=11587]Problem[/url] ist, dass Udev den Befehl [b] montiert < /strong> anscheinend nicht funktioniert. Auch der Befehl erzeugt eine Ausgabe sowie die  mont_point [/b] env -Variable in der Protokolldatei. Diese Datei sieht so aus: < /p>

Device with UUID:  mounted at
< /code>
Ich habe das Skript bearbeitet und stattdessen ohne sudo ausgeführt, aber die gleiche Ausgabe von oben erhielt. auf diese unterschiedliche Weise: < /p>
ACTION=="add", ENV{ID_FS_UUID}=="12CB-F616", SYMLINK+="masterkey", RUN+="/bin/bash -c '/usr/bin/mountkey.sh'"

ACTION=="add", ENV{ID_FS_UUID}=="12CB-F616", SYMLINK+="masterkey", RUN+="/bin/bash -c 'sudo /usr/bin/mount /dev/masterkey /mnt/masterkey'"

ACTION=="add", ENV{ID_FS_UUID}=="12CB-F616", SYMLINK+="masterkey", RUN+="/bin/bash -c '/usr/bin/mount /dev/masterkey /mnt/masterkey'"

Auch ich habe all dies mit Sh gemacht (von Corse habe ich #!/bin/sh) und in keiner Weise funktioniert.
Es scheint also kein Problem zu haben, das Skript aufzurufen, aber das Ausführen des Mount -Binärs in welcher Art und Weise, wie es dargestellt wird. Binär, denn wenn ich laufe: < /p>

Code: Select all

sudo mount /dev/sdnX /mnt/masterkey

Es funktioniert propterly. Ich habe das Skript mit denselben vorgestellten Methoden oft versucht, aber die gleichen Ergebnisse oben erhalten. vagrant (archlinux/archlinux)
Kernel 6.10.10-arch1-1

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post