ich habe vor einigen Tagen mittels Samba und einem kleinen Script einen pdf Drucker für mein LAN realisiert. Hierbei verwende ich das Samba "print command" um ein sh Script aufzurufen, welches die ps Datei im Spooler in ein PDF umwandelt und dieses anschließend an den am Samba angemeldeten User zustellt. Dies funktioniert soweit auch wunderbar.
Nun wollte ich die Lösung dahin erweitern, daß auch nicht angemeldete User (Guest) auf dem Drucker drucken können. In diesem Fall soll aber das PDF nicht versendet (könnte die Mail ja nicht zustellen), sondern in meinen Public Samba Share verschoben werden. Also habe ich versucht das Script um eine if else Anweisung zu erweitern, welche auf den übergebenen Usernamen prüft und sollte dieser "nobody" lauten das PDF verschiebt anstatt es zu versenden. Nur irgendwie will dies nicht so recht. Hier der Auszug aus dem Script:
Code: Alles auswählen
USER=`whoami`
#Ein Samba Gast ist nobody
GAST = 'nobody'
if ["$USER" = "$GAST"]; then
mv $ZEIT.pdf /home/samba/Public/pdf/
#Haben wir einen User, versenden wir es via mail
else
#Damit mail das pdf als Attachment versendet, wandeln wir es in ASCII-Zeichen um.
uuencode $ZEIT.pdf $ZEIT.pdf > $ZEIT.uuc
#Nun die Mail zustellen
mail -s "PDF-Drucker $ZEIT" $USER < $ZEIT.uuc
#aufräumen!
rm -f $ZEIT.pdf
rm -f $ZEIT.uuc
#Fertig
fi
Nun zu meinem Problem. Obwohl der User nachweislich nobody ist, sofern ich als Guest drucke, wird das PDF nach wie vor via Mail zugestellt. Kommentiere ich allerdings die Zeile
Code: Alles auswählen
mv $ZEIT.pdf /home/samba/Public/pdf/
Ein Problem mit den Rechten scheint es nicht zu geben. Denn wenn ich in den Ordner /var/spool/samba gehe und mittels su auf nobody wechsel, kann ich das generierte PDF problemlos mit
Code: Alles auswählen
mv 2011-07-23-23.19.pdf /home/samba/Public/pdf/
In den logs finde ich leider auch keinen Hinweis, warum es nicht geht. Daher stehe ich grade etwas auf dem Schlauch, zumal ich noch nicht viel Erfahrung mit if else in sh Scripten habe... Hat einer von Euch eine Idee was ich falsch mache?