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, [/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 [/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
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 [b] lokalisiert[code]/etc/udev/rules.d/99-local.rules[/code], [/b] und dies ist der Inhalt:
[code]ACTION=="add", ENV{ID_FS_UUID}=="12CB-F616", SYMLINK+="masterkey", RUN+="/usr/bin/mountkey.sh"[/code]
Das von der Udev -Regel ausgeführte Skript besteht darin:
[code]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
[/code]
Um den Befehlsstraße [b] montage [/b] als Root auszuführen, ohne auf das Passwort zu warten, habe ich die [b] bearbeitet[code]/etc/sudoers[/code] [/b] Datei mit [b] visudo [/b] und fügte beide Zeilen mit dem [b] nopasswd [/b] für [b] montage [/b] für den [b] Vagrant und root [/b] Benutzer. So wie folgt: < /p>
[code]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'"
[/code]
Auch ich habe all dies mit Sh [b] gemacht (von Corse habe ich #!/bin/sh) [/b] und in keiner Weise funktioniert.
Es scheint also kein [url=viewtopic.php?t=11587]Problem[/url] 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]sudo mount /dev/sdnX /mnt/masterkey[/code]
Es funktioniert propterly. Ich habe das Skript mit denselben vorgestellten Methoden oft versucht, aber die gleichen Ergebnisse oben erhalten. vagrant [b] (archlinux/archlinux) [/b]
Kernel [b] 6.10.10-arch1-1 [/b]