• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Druckerfreigaben anzeigen und gruppenabhängig

Hallo...

EDIT: Ich habe Druckerfreigaben auf dem Samba, doch wenn ich mich unter WinXP anmelde und ein File, z.B. aus dem Editor drucken will, dann hab ich gar keine Drucker zu Verfügung!!! Es heißt dann, ich müsse erst einen installieren.
Wieso kommen da nicht meine Samba-Druckerfreigaben zum Vorschein - was muss ich da tun?
Hier mal eine Freigabe:
Code:
[printers]
	comment = All Printers
	path = /var/tmp
	create mask = 0600
	printable = Yes
	browseable = No

[print$]
	comment = Printer Drivers
	path = /var/lib/samba/drivers
	write list = @ntadmin, root
	force group = ntadmin
	create mask = 0664
	directory mask = 0775
	browseable = No

[a4_duplex_k]
	comment = KYOCERA FS-6950DN A4_duplex Konstruktion
	path = /var/tmp
	read only = No
	create mask = 0600
	printable = Yes
	printer name = A4_duplex_k
	browseable = Yes
	share modes = No


So, dann der eigentliche Punkt:
Ich habe viele Druckerfreigaben in meiner smb.conf. Ich möchte nun erreichen, dass bei der Anmeldung eines Users nur bestimmte Drucker für ihn auswählbar sind - in Abhängigkeit seiner Gruppenzugehörigkeit!

Wie mache ich das?
Muß ich dazu bei jeder Druckerfreigabe in der smb.conf irgendwie die Gruppen mit angeben - welche Option wäre das dann?

Danke und Gruß.
 

stka

Guru
Schmeiße erst einmal alle Druckerfreigaben aus der smb.conf raus. Dann sieh zu, dass als Drucksystem "cups" verwendet wird. Dann richte alle Drucker unter cups ein. Dann kannst du die Drucker auch über samba nutzen. Dan sieh zu, dass du den cupsserver auch von Rechnern aus dem Netz nutzen kannst. Das wir in der /etc/cups/cupsd.conf eingerichtet.
Du kannst zum Testen ob die Cups Drucker erreichbar sind unter windows auch direkt auf die cups Drucker zugreifen. Einfach beim einrichten eines NEtzwerkdruckers die URL angeben in folgendem Format:
http://server:631/printers/druckerfreigabe
Wenn du dann drucken kannst stimmen die Rechte auf dem cups. Wenn du keine automatische Verteilung der Druckertreiber benötigst kannst du alle Drucker auch so einrichten. Die Verteilung der Druckertreiber funktioniert nur über samba.
 
OP
M

magic_halli

Hacker
Also, ich hatte bereits unter CUPS (http://servername:631/printers) meine Drucker eingerichtet.
Jetzt habe ich mal in der smb.conf alle Druckerfreigaben entfernt und mit
Code:
cupsaddsmb -a
die Cups-Drucker mit Samba verbunden. Soweit, sogut.

Jetzt möchte ich aber unter Windows nicht für jeden Drucker den Treiber neu installieren, sondern CUPS soll die Treiberzuweisung übernehmen. Sprich: CUPS soll mir am WindowsClient automatisch den entsprechenden Druckertreiber anbieten - keine manuelle Treiberinstallation soll nötig sein!
Geht das bzw. wie geht das? Gibts hierfür eine gescheite Anleitung?

Gruß.


@admins: Ich mache hierzu mal einen Thread im Druckerforum auf, da sich das ganze hier doch mittlerweile von Samba entfernt. hier: http://www.linux-club.de/viewtopic.php?p=482698#482698
 

stka

Guru
Ja das geht. Die dafür benötigte Freigabe hast du ja schon "print$" in dieser Freigabe werden die Druckertreiber abgelegt.
Wenn du nun von einer Windows Workstation aus auf "Drucker und Faxgeräte" gehst, siehst du ja alle Freigaben. Zusätzlich siehst du noch mal "Drucker und Faxgeräte" oder so, ich kann das gerade nicht nachschauen. An der Stelle sind dann die auf dem Server eingerichteten Geräte zu finden. Wenn du jetzt mit der rechten Maus auf einen Drucker klickst, kommt die Meldung " Der Drucker ist nicht eingerichtet wollen Sie das jetzt tun" (oder so ähnlich). An dieser Stelle unbedingt auf "Nein" klicken. Dann die Eigenschaften öffnen und dann einen Druckertreiber installieren.
Damit du die Treiber installieren kannst, musst du die Archive in denen der Druckertreiber geliefert wird vorher entpacken. Jetzt kannst du dann die Treiber installieren. Prüfe die Rechte der Dateien in der Freigabe. Jeder muss dort r+x Recht haben.
 
OP
M

magic_halli

Hacker
Frage dazu:
Ich habe jetzt in meiner smb.conf die einzelnen Druckerfreigaben erstmal rausgenommen, sodass jetzt nur noch [global], [printers] und [print$] drinsteht - so wie Du das in Deinem ersten Post geschrieben hast.
Sollen jetzt die einzelnen Druckerfreigaben wieder rein, oder brauche ich diese in der smb.conf nicht mehr, da ich ja den CUPS eingerichtet habe???
Das ist noch etwas verwirrend.

Edit: Die Druckertreiber, welche von Windows verwendet werden sollen, sind aber nicht die ppd-Files, die Linux verwendet, oder?
Ich habe mir in /var/lib/samba/drivers folgende Files reinkopiert (laut eines Artikel im Netz):
PSCRIPT.NTF
PSCRIPT.HLP
PSCRIPT5.DLL
PS5UI.DLL
cupsui6.dll
cupsps6.dll

Doch wenn ich so wie Du hier beschreibst vorgehe, kommt als Meldung in Windows, dass kein Treiber geladen werden konnte.
Ich kappier das nich - welche Treiberdateien müssen denn nun von Windows verwendet werden - diese müssen doch in dem Verzeichnis von der Freigabe [print$] liegen?!?!
 
OP
M

magic_halli

Hacker
So, ich habs erstmal grundlegend hinbekommen, dass Druckertreiber auf dem Server gespeichert werden und die Clients dann auch darauf zugreifen. Hab´s mit Hilfe dieser Seite hinbekommen: http://gertranssmb3.berlios.de/output/printing.html#id2549850.

Was allerdings noch nicht so ganz funktioniert:
Wenn ich als DomainAdmin am Client angemeldet bin und dort einen Drucker+Treiber installiere, so ist er leider nicht bei allen anderen (normalen) Usern vorhanden - sprich, jeder User müsste sich seine Drucker nochmals neu hinzufügen. Das können Sie aber nicht, da sie keine Berechtigung dazu haben.
Warum könnte das so sein?
Als welcher Nutzer (lokaler Admin, Domainadmin...) kann ich für jedermann nutzbar Drucker einrichten?

Hier mal meine smb.conf-Auszüge:
Code:
[global]
	workgroup = FIRMA-LOCAL
	server string = Samba Server v1
	map to guest = Bad User
	passdb backend = ldapsam:ldap://10.0.0.1
	passwd program = /usr/local/sbin/smbldap-passwd %u
	log level = 2
	log file = /var/log/samba.log
	debug uid = Yes
	load printers = Yes
	printing = cups
	printcap name = cups
	add user script = /usr/sbin/smbldap-useradd -m -a "%u"
	delete user script = /usr/sbin/smbldap-userdel "%u"
	add group script = /usr/sbin/smbldap-groupadd -p "%g"
	delete group script = /usr/sbin/smbldap-groupdel "%g"
	add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
	delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
	set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
	add machine script = /usr/sbin/smbldap-useradd -w "%u"
	#logon script = admin.bat
	logon script = %G.bat
	#Servergespeicherte-Profile unter Username-Ordner im entspr. Pfad abspeichern
	logon path = \\%L\%U
	logon drive = Z:
	logon home = \\%L\%U\.9xprofile
	domain logons = Yes
	os level = 65
	preferred master = Yes
	domain master = Yes
	ldap admin dn = cn=Manager,dc=tultec,dc=local
	ldap delete dn = Yes
	ldap group suffix = ou=group
	ldap machine suffix = ou=hosts
	ldap passwd sync = Yes
	ldap suffix = dc=tultec,dc=local
	ldap ssl = no
	ldap user suffix = ou=people
	cups options = raw

[printers]
	comment = All Printers
	path = /var/spool/samba
	printable = Yes
	browseable = No
	writeable = No
	public = Yes
	guest ok = Yes
	printer admin = root

[print$]
	comment = Printer Drivers
	path = /var/lib/samba/drivers
	write list = @ntadmin, root
	browseable = Yes
	guest ok = no
	read only = Yes

EDIT: Ich möchte eigentlich, dass man als lokaler Admin ("an diesem Computer") Drucker einrichten kann und die dann für alle Nutzer erstmal sichtbar sind! Die Authentifizierung am Client geht gegen LDAP - außer natürlich der lokale Admin.
Was muss ich da tun?

Gruß.
 
Oben