Danke, für die Rückmeldung!
Nachdem Du in Deinem ersten Post geschrieben hattest, dass das bei Dir nicht mehr funktioniert, war ich jetzt nicht davon ausgegangen, dass Dir die grundsätzliche Arbeitsweise des Kommandos nicht bekannt ist. Das ist nicht als Vorwurf gemeint!
Ich habe das heute übrigens mal unter Jammy nachstellen können. Mir ist dabei aufgefallen, dass sich das ganze irgendwie nicht ganz schlüssig verhält:
In der man smb.conf ist das folgende Beispiel für preexec aufgeführt:
preexec = echo \"%u connected to %S from %m (%I)\" >> /tmp/log
Das wir so bei mir unter Jammy nicht aufgeführt. Probiert habe ich es wie folgt:
root preexec = echo \"%u connected to %S from %m (%I)\" >> /tmp/log
,
root preexec = echo %u connected to %S from %m (%I) >> /tmp/log
,
root preexec = /usr/bin/echo \"%u connected to %S from %m (%I)\" >> /tmp/log
und
root preexec = /usr/bin/echo %u connected to %S from %m (%I) >> /tmp/log
Hat alles nicht funktioniert - also es wurde jeweils nicht die Datei /tmp/log angelegt.
Auch ein noch simpleres
root preexec = /usr/bin/echo Test >> /tmp/log
,
root preexec = /usr/bin/echo "Test" >> /tmp/log
oder
root preexec = /usr/bin/echo \"Test\" >> /tmp/log
hat alles nicht die /tmp/log erstellt.
Funktioniert hat dagegen nur:
root preexec = /bin/bash -c "echo \"%u connected to %S from %m (%I)\" >> /tmp/log"
Der von Dir verwendete Befehl funktioniert dagegen einfach auch so:
root preexec = mkdir -p /mnt/media1/shared_folder
Da ich kein absoluter bash-Experte bin, mag das ja auch an irgend einer Quoting-Geschichte liegen. Ich finde das Verhalten ist aber jedenfalls nicht gerade schlüssig und damit eventuell eine Stolperfalle.
LG,
Newubunti