Gibt es eine Möglichkeit, Post-Mount- und Pre-Umount-Skripte unter Linux bereitzustellen?
Ich versuche, einige Skripte auf Speichermedien zu erstellen, wenn sie gemountet sind und bevor sie bereitgestellt werden (z. B. zum Synchronisieren).
Jede Hilfe geschätzt.
Antworten:
Wenn Sie versuchen, dies für Benutzer zu tun, die den Befehl
/sbin/mount
und aufrufen/sbin/umount
, müssen Sie lediglich ein Wrapper-Programm für beide erstellen und das, was Sie möchten, in diese Wrapper-Programme programmieren.Ein Wrapper-Programm, das
/sbin/mount
das Wrapper-Programm ersetzt, das das Real aufruft/sbin/mount
(umbenannt in so etwas wie/sbin/mount-real
oder/sbin/umount-real
). Um zu verhindern, dass jemand das echte Programm aufruft, verwenden Sie Gruppenberechtigungen, um es einzuschränken, und setzen Sie das SGID-Bit in den Wrapper-Programmen.Wenn Sie den
mount(2)
Bibliotheksaufruf beheben möchten, ist dies ein Aufwand und wahrscheinlich schwierig und wahrscheinlich nicht ratsam, da dies Probleme bei der Verarbeitung interner Systeme verursachen kann, insbesondere beim Starten und Herunterfahren.Selbst mit einem Wrapper-Programm müssten Sie es wahrscheinlich gründlich testen, um Systemstörungen zu vermeiden, und entsprechende Anpassungen vornehmen.
quelle
Sie können wahrscheinlich den Inotify- Kernel-Hook verwenden, obwohl es sehr schwierig sein kann, ein Pre-Unmount-Ereignis abzufangen, da ich nicht sicher bin, ob ein Inotify-Ereignis gesendet wird, bevor das Verzeichnis umountet wird.
quelle
/media
oder/mnt
), jedoch nicht, wenn ein Dateisystem in diesem Verzeichnis bereitgestellt wurde.Die einfachste Lösung, die wahrscheinlich für immer funktionieren wird, besteht darin, das
/etc/mtab
oder abzufragen/proc/mounts
. Sobald eine Änderung an dieser Datei vorgenommen wurde, bedeutet dies, dass entweder etwas gemountet oder nicht gemountet wurde. Dann müssen Sie dort nach dem gewünschten Gerät suchen.Udev ist nicht die beste Lösung, da es Ihnen nur sagt, ob ein Gerät angeschlossen ist. Es wird nicht angezeigt, ob das Gerät tatsächlich bereitgestellt wurde oder nicht. Dies mag manchmal funktionieren, aber es ist eine hackige Lösung, die irgendwann kaputt geht und Sie werden sich die Haare ausreißen.
quelle
Sie könnten eine udev-Regel schreiben, um das zu tun. Ich habe gebrauchte so etwas wie dies für die automatischen Sachen auf ein USB - Laufwerk sichern. Lustige Sachen.
quelle