[Eisfair] [e1] Samba pdf-Erstellung macht Probleme

Thomas Bork tom at eisfair.org
So Jun 19 23:21:39 CEST 2016


Am 19.06.2016 um 22:50 schrieb Hans-Georg Kiefer:

> Mit welchem Druckertreiber?

Dem aus /public/ghostscript_pdf_drivers

>> Das Problem liegt einzig und allein darin, dass Du irgendwie als User
>> nobody am System angemeldet bist.
> Das ist unlogisch. Ich kann ja auf meine Freigaben zugreifen und das PDF
> im Ordner /tmp bzw. /public hat den korrekten Besitzer. Woher stammen
> diese Informationen sonst?

Ok, räufeln wir das mal von hinten auf:

In /var/install/bin/samba-print-pdf steht im Kopf:

[...]
# Arguments:
# $1  = file (usually passed with %s from samba)
# $2  = jobname (usually passed with %J from samba)
# $3  = unix prefix to where to place the file (~%u should work)
# $4  = windows prefix to the same location (\\%L\%u should work)
# $5  = computer to send a notification to (%m)
# $6  = ip address of client (%I)
# $7  = user (%u)
# $8  = pdfquality
# $9  = pdfownerpass
# $10 = pdfuserpass
# $11 = pdfpermissions
# $12 = pdftarget: homedir or public or mail
# $13 = smbinfo yes/no
# $14 = pdfmessages yes/no
[...]

Der User wird dem Skript also als Argument 7 übergeben. Aber wer ruft 
das Skript auf? Samba natürlich. Wird auf die Druckerfreigabe gedruckt, 
wird das Skript laut den Optionen in der smb.conf aufgerufen.

Sehen wir uns also die Optionen für die Druckerfreigabe in smb.conf an:

[pdf]
  comment = pdf-service on %h
  printing = bsd
  use client driver = yes
  browseable = yes
  printable = yes
  path = /var/spool/samba
  lpq command = /var/install/bin/samba-print-pdf status
  print command = ( /var/install/bin/samba-print-pdf '%s' '%J' '%H' 
'//%L/%u' '%m' '%I' '%u' '-dPDFSETTINGS=/default' '-sOwnerPassword=' 
'-sUserPassword=' '-dPermissions=' 'homedir' 'no' 'yes' ) &
  create mode = 0700

Interessant ist hier 'print command'. Das 7. Argument ist '%u'. Das ist 
ein Samba-Makro, welches den verbundenen User ausgibt. Und das ist bei 
Dir zum Zeitpunkt des Skript-Aufrufes nun mal nobody, wie die Ausgabe im Log

(user)<tab><tab>: nobody

gezeigt hat.

-- 
der tom
[eisfair-team]


Mehr Informationen über die Mailingliste Eisfair