Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

PDFprinter über Samba & Ghostscript

0 views
Skip to first unread message

Wolfgang Dautermann

unread,
Sep 25, 2002, 8:56:58 AM9/25/02
to
Hi,
Ich habe im Grossen und Ganzen wie unter
http://www.linuxgazette.com/issue72/bright.html
beschrieben mit Samba und Ghostscript einen PDF Service eingerichtet.
Funktioniert prima, die User sind begeistert.

Das einzige was mich stört ist die mangelnde Security - jeder könnte
(solang es am Share vorhanden ist) jedes erstellte PDF lesen...

Wie könnte man das denn verbessern? Eine Möglichkeit wäre, pro Rechner,
der das nutzen soll, ein eingenes Share zu definieren, auf das nur
vom jeweiligen Client zugegriffen werden kann, aber das wird irgendwann
unübersichtlich... Könnte man das mittels Samba irgendwie an den
Windows-Rechner 'zurücksenden' (sodaß z.B. wie beim Drucken in eine
Datei eine Popupbox aufgeht, die fragt, wohin das gespeichert werden soll?

Hmm...

Grüße, Wolfgang

--
Meine Homepage: http://oeh.tu-graz.ac.at/~dauti/ Ausserdem Webmaster von:
http://oeh.tu-graz.ac.at, http://www.usenet.at, http://ersworks.org/lugg/,
http://aviation.fh-joanneum.at, http://www.wist.vc-graz.ac.at,
http://schienenfahrzeugtechnik.fh-joanneum.at, http://www.koma.dyn.priv.at

Jörg Wesely

unread,
Sep 25, 2002, 9:16:49 AM9/25/02
to
Wolfgang Dautermann wrote:
> Hi,
> Ich habe im Grossen und Ganzen wie unter
> http://www.linuxgazette.com/issue72/bright.html
> beschrieben mit Samba und Ghostscript einen PDF Service eingerichtet.
> Funktioniert prima, die User sind begeistert.
>
> Das einzige was mich stört ist die mangelnde Security - jeder könnte
> (solang es am Share vorhanden ist) jedes erstellte PDF lesen...
>
vielleicht könnte man dem Skript den Benutzernamen mitgeben, der den Job
gestartet hat, das fertige pdf mit chown den entsprechenden Benutzer
übereignen und die permissions auf nur-Besitzer-kann-lesen setzen.

tschü
Jörg


Christian Loew

unread,
Sep 25, 2002, 12:58:29 PM9/25/02
to
begin followup to Jörg Wesely's posting

>> Das einzige was mich stört ist die mangelnde Security - jeder könnte
>> (solang es am Share vorhanden ist) jedes erstellte PDF lesen...
>>
> vielleicht könnte man dem Skript den Benutzernamen mitgeben, der den Job
> gestartet hat, das fertige pdf mit chown den entsprechenden Benutzer
> übereignen und die permissions auf nur-Besitzer-kann-lesen setzen.

oder gleich in sein $HOME oder $HOME/pdf-print schieben

und zusätzlich noch den Dokumtenten-Name aus der ps-Datei auslesen um einen
brauchbaren Filenamen zu bekommen


Chris,
der für obiges gerade mit LDAP-lookup's kämpft

Detlef Pohlmann

unread,
Sep 26, 2002, 11:43:38 AM9/26/02
to
Wolfgang Dautermann schrieb am Mittwoch, 25. September 2002 14:56

Hallo Wolfgang!

> Ich habe im Grossen und Ganzen wie unter
> http://www.linuxgazette.com/issue72/bright.html
> beschrieben mit Samba und Ghostscript einen PDF Service eingerichtet.
> Funktioniert prima, die User sind begeistert.
>
> Das einzige was mich stört ist die mangelnde Security - jeder könnte
> (solang es am Share vorhanden ist) jedes erstellte PDF lesen...

Wenn du die create mask in der smb.conf auf 600 stellst, dann kann nur
der User, der die Datei angelegt hat, diese auch öffnen.

Gruß
Detlef

Antworten bitte nur in der Newsgroup posten.

Martin Ende

unread,
Sep 26, 2002, 12:19:59 PM9/26/02
to
ich habe das so gelöst:

1. Printing über lprng, printcap:

ps2pdf:\
:lp=/dev/null:sd=/var/spool/ps2pdf:filter=root
/usr/local/bin/if_ps2pdf:

der inputfilter ist dann folgendes kleine perlscript:

#! /usr/bin/perl
#

@CTL=split '\n', $ENV{CONTROL};

# scan controlfile
for (@CTL) {
if (/^P/) { # username
s/^P//;
$USERNAME=$_;
$PDFNAME="/home/$USERNAME/pdf.pdf";}
if (/^J/) { # Jobname
s/^J//;
$JOBNAME=$_;}
}
($sek,$min,$std,$mtag,$mon,$jahr)=localtime(time);
$jahr=$jahr+1900;
$mon=$mon+1;

unlink $PDFNAME;
system "ps2pdf - $PDFNAME";
chmod 0600,$PDFNAME;
$size=(stat $PDFNAME)[7];

open F,">>/var/log/ps2pdf";
print F "$jahr-$mon-$mtag $std:$min:$sek $USERNAME $JOBNAME $PDFNAME
$size\n";

chown((getpwnam($USERNAME))[2,3],$PDFNAME);
close F;

Der Eintrag in smb.conf schließlich ist so:

[ps2pdf]
comment = Wandelt Postscript in PDF ins Home
path = /tmp
browseable = yes
printable = yes
public = yes


ob das genial ist weiß ich nicht, aber es funktioniert. Einfach mit einem
Postscript-Treiber reindrucken und ein paar Sekunden später hast du eine
pdf.pdf in deinem Home.


Wolfgang Dautermann

unread,
Oct 3, 2002, 9:29:33 AM10/3/02
to
Christian Loew <cloew....@chello.at> wrote:

> oder gleich in sein $HOME oder $HOME/pdf-print schieben

Die meisten User haben auf dem Linux-Server gar keinen Account, ergo
gibts meistens kein $HOME. Aber ich hab da gleich noch ein paar Fragen:

(a) Der Service hat für kleine Dokumente gut funktioniert, bei grossen
wurde oft nur der erste Teil konvertiert. Manuell (= Postscript Datei
irgendwohin kopieren und dann mit ps2pdf konvertieren hat aber alles
funktioniert. Nach einer *ziemlich langen* Fehlersuche vermute ich
folgenden Fehler: ps2pdf machte irgendwelche Bildschirmausgaben (STDOUT
oder STDERROR). Ich vermute Samba hat das (bei einem "Druckbefehl"
nicht erwartet, einen Fehler vermutet und den Druckbefehl gekillt. Kann
das wer bestätigen/widerlegen? Nachdem ich ">/dev/hull 2>&1"
beim "print command" dazugeschrieben habe, scheint der Fehler nicht
mehr aufzutreten - aber ich weiss natürlich nicht, ob das tatsächlich
die Ursache war...

(b) Zur Lösung meines "Sicherheitsproblems" bin ich auf die Idee gekommen,
in den Dateinamen z.B. mit dem "%I"-Makro die IP-Adresse des Clients
einzubauen. Und dann bräuchte ich das "Gegenstück" zu "veto files". Also
nicht eine 'Negativliste' (welche Dateien sollen nicht angezeigt werden),
sondern eine Positivliste (Zeige alle Dateien, die mit der entsprechenden
Client IP "%I-*" an - sonst keine. Gibts sowas? In der Doku bin ich
nicht fündig geworden...

Ciao Wolfgang

Michael Stucki

unread,
Oct 3, 2002, 11:59:46 AM10/3/02
to
Wolfgang Dautermann wrote:

> Das einzige was mich stört ist die mangelnde Security - jeder könnte
> (solang es am Share vorhanden ist) jedes erstellte PDF lesen...

> Wie könnte man das denn verbessern? Eine Möglichkeit wäre, pro Rechner,
> der das nutzen soll, ein eingenes Share zu definieren, auf das nur
> vom jeweiligen Client zugegriffen werden kann, aber das wird irgendwann
> unübersichtlich... Könnte man das mittels Samba irgendwie an den
> Windows-Rechner 'zurücksenden' (sodaß z.B. wie beim Drucken in eine
> Datei eine Popupbox aufgeht, die fragt, wohin das gespeichert werden soll?

Ich habe es in unserer Firma (> 1000 User) so gelöst, dass Samba den
Usernamen und den Pfad zum generierten PDF an ein Script weitergibt.

Dieses durchsucht später ein Verzeichnis (unseren Exchange-Server -> LDAP)
nach dem Usernamen und erhält dabei die Email-Adresse des Users.
Es könnte genauso natürlich auch eine Datenbank oder ein Textfile sein. Je
nach Anzahl der User bist Du aber froh, wenn Du die Daten so einfach finden
kannst.

Als letztes wird das PDF mit Hilfe von Mutt (der kann Attachments m.E.
ziemlich einfach versenden) an den entsprechenden User zurückgesendet.

Bei PDFs < 5MB (was eigentlich meistens der Fall ist) kommst Du damit prima
durch. Für die wenigen Ausnahmen würde ich pro Abteilung einen Acrobat
installiert lassen...

Gruss,
Michael

PS: Wer interesse an dem Script hat darf es gerne haben. Als Gegenleistung
wäre ich froh, wenn mir jemand helfen würde, das ganze mal zu testen, zu
verbessern und zu dokumentieren (Pro-Linux freut sich z.B. über solche
Artikel!). Freiwillige vor...! Danke.

Karl Voit

unread,
Oct 4, 2002, 3:29:06 PM10/4/02
to
Wolfgang Dautermann <da...@sbox.tu-graz.ac.at> wrote:
>
> Wie könnte man das denn verbessern?

http://webweaver.de/mattias/index.rb?section=typesetting&subsection=pdf-service&style=screen

Da gibt's einen Link zu einem Script, das die PDF per Mail an den User
sendet.

--
Karl VOIT, Graz University of Technology (Austria/Europe)
begin I_am_a_Signature_-_not_a_Virus.jpg.txt
http://www.dagegen.org/LOVE-LETTER.txt.html
end

0 new messages