Kategorien
Linux

Samba Freigabe mit Papierkorb versehen

Out of the box kommt Samba ohne irgendwelche Papierkorb-Funktion daher, eine gelöschte Datei landet also im Nirvana und kann maximal aus einem Backup zurück geholt werden.

Das kann zu Problemen führen wenn die User gewohnt sind auf gelöschte Dateien über den Papierkorb zugreifen zu können, bei Windows Servern und deren Freigaben ist das der Standard.

Samba fehlt diese Funktion allerdings nicht, sie ist nur per Default nicht aktiviert bzw. kann für jede Freigabe extra aktiviert werden.

Die Funktion für eine Freigabe nachzurüsten ist sehr einfach, hier die Schritte die es dafür benötigt:

  • Anlegen eines Papierkorb Verzeichnisses

mkdir /srv/samba/freigabe/.recycle
chmod 1770 /srv/samba/freigabe/.recycle

Die Zugriffsrechte 1777 verwende ich weil auf der Freigabe nur der Besitzer und root die Datei aus dem Papierkorb löschen sollen.

Durch den vorangstellten Punkt wird das Verzeichnis im Windows als verstecktes Verzeichnis behandelt und ist nicht für Jedermann sichtbar.

  • In der smb.conf die Einstellungen bei der Freigabe vornehmen

[freigabe]
comment = eine Freigabe zum Testen
path = /srv/samba/freigabe
writable = yes
create mask = 0770
directory mask = 0770
force user = smbusers
vfs object = recycle
recycle:repository = .recycle
recycle:keeptree = Yes
recycle:touch = Yes
recycle:versions = Yes
recycle:maxsize = 0

Die Bedeutung der vfs object Parameter sind wie folgt:

recycle:repository = .recycle

Der relative Pfad zum Papierkorb innerhalb der Freigabe.

recycle:touch = Yes

Setzt die Uhrzeit der gelöschten Datei auf den Löschzeitpunkt – sehr wichtig wenn man alle Dateien älter als x-Trage automatisch per Cron Job löschen möchte!

recycle:keeptree = Yes

Behält die Ordnerstruktur im Papierkorb bei.

recycle:versions = Yes

Dateien mit dem gleichen Namen überschreiben sich nicht im Papierkorb, die zweite Datei bekommt den Namen „Copy #1 of…“

recycle:maxsize = 0

0 bedeutet hier dass alle Dateien im Papierkorb landen, gibt man hier eine Größe an landen alle Dateien ab der Größe im Nirvana und nur kleinere Dateien werden in den Papierkorb verschoben.

Das Ganze lässt sich dann noch mit „vfs object = full_audit recycle“ kombinieren und schon sieht man im Samba Logfile wer welche Dateien gelöscht hat. Erzeugt zwar jede Menge Daten im Syslog – wer aber regelmässig damit zu kämpfen hat dass Dateien „einfach verschwinden“ der findet hier schnell den Übeltäter! 😉

Damit der Papierkorb sich nicht unendlich füllt habe ich noch eine Cron Job eingebaut der täglich um 23:00 Uhr alle Dateie älter als 30 Tage aus dem Papierkorb entfernt.

In der Datei /etc/crontab einfach folgende Zeile einfügen:

0 23 * * * root find /srv/samba/freigabe/.recyclebin -atime +30 -exec rm -rf {} \;

Und schon verliert das Löschen auf Netzwerklaufwerken mit Samba Servern seinen Schrecken! 🙂

Kategorien
Linux

Samba 4 – RFC 2307 falsche xidNumber korrigieren

Ein nachträgliches Verändern der xidNumber im Samba AD würde ich jetzt pauschal nicht empfehlen, wenn’s allerdings mal wirklich nötig ist dann hat sich der folgende Weg bei mir bewährt:

Vorhandene xidNumber vom User abfragen:

wbinfo -i username

Mit dem Ergebnis die SID des Users abfragen:

wbinfo -U xidNumber

Und anschließend in der idmap.ldb Datei den Eintrag mit der neuen xidNumber versehen – bei mir lag die idmap.ldb im Verzeichnis /var/lib/samba/private/

ldbedit -e vi -H idmap.ldb objectsid=S-1-5-21-798719937-1416451100-1523457936-4867

Das sieht dann wie folgt aus:

# editing 1 records
# record 1
dn: CN=S-1-5-21-798719937-1416451100-1523457936-4867
cn: S-1-5-21-798719937-1416451100-1523457936-4867
objectClass: sidMap
objectSid: S-1-5-21-798719937-1416451100-1523457936-4867
type: ID_TYPE_BOTH
xidNumber: 310157
distinguishedName: CN=S-1-5-21-798719937-1416451100-1523457936-4867

Nach dem setzen der xidNumber speichern und anschließend den Cache am Samba Server entleeren:

net cache flush

Jetzt sollte eine Abfrage des Users die korrekte xidNumber liefern…

wbinfo -i username
username:*:310157:300002:Test User:/srv/samba/home/username:/bin/false

Grund für dieses Vorgehen war dass Samba aus welchen Gründen auch immer die Änderungen im AD-Manager für RFC2307 Werte nicht korrekt übernommen hat. Nach dem Speichern waren sie für wenige Sekunden aktuell und wurden dann wie von Geisterhand wieder mit den alten Werten überschrieben.

Weder Serverneustart noch sonstige Versuche hatten hier geholfen, selbst den zweiten AD Controller aus der AD zu nehmen und komplett neu aufzusetzen hatte nichts gebracht. Erst das manuelle Ändern in der idmap.ldb Datei brachte hier Abhilfe!

Und woher kam der Fehler? Beim Umstellen der Domain von Samba 3 auf Samba 4 und Active Directory wurde der Parameter “ –use-rfc2307″ nicht gesetzt, daher keine Unix-ID’s. Damit aber alle AD Member Server mit den gleichen ID’s auf Linux Ebene arbeiten braucht es diese, also wurden sie nachträglich integriert und gesetzt.

Das hat soweit auch recht gut geklappt – bis auf eine Hand voll User bei denen das obige Problem auftrat.

Kategorien
Cebit

Docusnap – Free Edition für kleine Netzwerke oder zum Testen

Darstellung der Netzwerkinventarisierung
Darstellung der Netzwerkinventarisierung

Zur Cebit 2015 präsentiert die Firma Itelio die hinter dem Produkt Docusnap steht ein neues Lizenzmodell – kleine Installationen können künftig die zeitlich unlimitierte Free Edition nutzen und so kleine Netzwerke bis 25 Systeme inventarisieren.

Eingeschränkt ist die Free Edition zusätzlich auf Windows-, Linux- und Mac Betriebssysteme sowie die Inventarisierung mittels SNMP, IP-Scan und Active Directory.

Die Erstellung von IT-Konzepten aus Vorlagen, die Generierung von Standard Berichten oder die Dokumentation von IT-Beziehungen sind in der Free Edition auch integriert.

Assistent-im-Rahmen-der-IT-Inventarisierung
IT Inventarisierung

Für kleine Betriebe die die Investition in ein Dokumentationssystem bisher gescheut haben ist das perfekt, hat sich die Free Edition bewährt kann man ja immer noch upgraden und weitere Funktionen freischalten lassen.

Besonders gelungen finde ich die Möglichkeit IT-Beziehungen zwischen Systemen und Dienste zu definieren und in der Dokumentation auch vernünftig zu visualisieren.

Anzeige-von-Ergebnissen-der-Netzwerk-Inventarisierung_teil
Detailergebnis Inventarisierung

Selbst bei kleinen Netzwerken zahlt es sich aus sie zu dokumentieren – nach dem Backup ist die Dokumentation gleich der nächste wichtige Schritt!

Kategorien
Linux

Samba – Domain Member zeigt keine Benutzer an

Ein PC der gerade frisch in eine Samba Domäne gehängt wurde zeigt im Benutzermanager nur die Domain Gruppen aber keine Benutzer an, woran liegst?

Nach dem Kontrollieren der Group-Mappings über „net group map“ und auch aller sonstigen Verbindungen zwischen Samba und Linux Benutzern hat folgender Fehlereintrag im Logfile zur Lösung geführt:

[2014/01/16 19:19:29.053871,  0] rpc_server/srv_pipe.c:1650(api_rpcTNP)
  api_rpcTNP: samr: SAMR_QUERYDISPLAYINFO failed.

In der Benutzerdatenbank waren Sonderzeichen drinnen (von einer früheren Konvertierung) die dort ein wenig Probleme gemacht haben…!

Der Befehl „pdbedit -L -v|less“ liefert die Auflistung aller Benutzer und deren Daten:

Unix username:        tsbern
NT username:         
Account Flags:        [U          ]
User SID:             S-1-5-21-1214293221-3678129080-71579288-21230
Primary Group SID:    S-1-5-21-1214293221-3678129080-71579288-513
Full Name:            Bernd Schn

Wie man schön sieht steht an Stelle eines „ö“ hier ein „“ also ein Problem mit den Sonderzeichen.

Beheben kann man das Ganze sehr schnell indem man einfach den „Full Name“ frisch setzt und dieses Mal ohne Sonderzeichen:

pdbedit -u tsbern -f „Bernd Schoen“

Und schon funktioniert wieder alles wie es soll!

Kategorien
Linux

Cups Pdf Drucker mit 64-Bit Windows – Samba tanzt im Kreis

Und wieder mal bin ich auf eine Möglichkeit gestoßen viel Zeit in eine Sache zu investieren die im Nachhinein betrachtet eigentlich ganz einfach zu lösen ist…! 🙂

Bisher lief das Erzeugen von PDF Dateien ganz einfach über einen PDF Drucker den der Samba Server via Cups zur Verfügung gestellt hat, Windows XP konnte darauf wunderbar drucken.

Unter Windows 7 klappte es leider nicht – es fand sich kein Treiber der sich am Samba Server installieren ließ. Einzig manuell eingerichtet und mit einem generischen Postscript Treiber von Microsoft lief der PDF Drucker. Allerdings ist das keine wirklich gangbare Variante wenn man dutzende oder gar hunderte PC’s damit versorgen soll.

Während meiner Treibersuche hatte ich jede Menge verschiedener Fehlermeldunge, hier nur ein kleiner Auszug…

Probiert habe ich so gut wie jeden Postscript Treiber der irgendwo zum finden war, leider wurden bei manueller Installation der Treiber immer darauf verwiesen dass es sich nicht um einen passenden Treiber für diesen Drucker handelt, und wenn ich mittels „rpcclient“ am Server einen Treiber hinterlegt habe dann ließ sich dieser zwar am Client installieren – funktoinierte allerdings nicht.

Für Windows XP hatte ich den mitgelieferten Apple Color LaserWriter 12/600 Treiber verwendet, der auch wunderbar funktioniert hat. Nur leider nicht mit 64-Bit Betriebssystemen.

Ein selbst zusammengebauter Treiber aus dem 64-Bit Postscript Dateien vom Windows 7 Treiber und der PPD Datei des alten Apple Treibers hat auch keine Abhilfe gebracht.

Also griff ich zur Holzhammer Methode – Drucker komplett gelöscht, Treiber und alle Verweise mit „rpcclient“ entfernt und dann noch einmal ganz von vorne!

Hier nun die Schritte die mich zum funktionierenden PDF Drucker für 32 und 64 Bit Systeme gebracht haben:

Auf einem Windows 7 PC lokal einen Drucker an LPT1 mit dem Windows Color Laser Printer 55 PS3 Treiber installieren.

Anschließend unter Systemsteuerung/Hardware und Sound/Geräte und Drucker den Drucker anklicken und im Menü Druckerservereigenschaften auswählen. Dort auf den Reiter Treiber wechseln und den Color Laser Printer auswählen – Eigenschaften anklicken.

Dort finden sich die Details zum Treiber, die ersten vier Einträge sind die wichtigsten – aber auch alles was unter „Abhängige Datei“ geführt wird brauchen wir im nächsten Schritt.

Alle diese Dateien müssen wir nun auf den Samba Server kopieren und zwar ins Verzeichnis /var/lib/samba/printers/x64

Jetzt können wir uns den addprinter Befehl für den rpcclient zusammen bauen:

adddriver „Windows x64“ „Color Laser Printer 55 PS3:PSCRIPT5.DLL:GNACA540.PPD:PS5UI.DLL:PSCRIPT.HLP:NULL:RAW:
GNACA541.PPD,GNACA542.PPD,GNACA540.DLL,GNACA540.INI,
GNACA540.XML,GNACA54Z.DLL,GNACA5DA.CHM,GNACA5P1.XML,
GNACA5UI.DLL,PSCRIPT.NTF,GNACA540.GDL,GNACA54A.DLL,
GNACA5B1.DLL,GNACA5BT.DLL,GNACA5P1.RES,GNACA5PU.DLL,
GNACA5UI.JS,PS_SCHM.GDL,GNACA5BJ.DLL,GNACA54C.DLL,
softcoin.dll,gencoin.dll,GNACA5P2.RES,GNACA5P2.XML,
GNACA5P3.RES,GNACA5P3.XML“

Nach dem Druckernamen folgt die postscript DLL Datei, die PPD Datei mit den Druckereinstellungen, die Postscript User Interface DLL und die Hilfe Datei. Anschließend ein NULL für’s fehlende Monitoring und RAW für den Datentyp. Jetzt kommen noch alle Abhängigen Dateien durch ein „,“ getrennt und schon ist der Befehl fertig.

Mit „rpcclient -Uroot SERVERNAME -c“ können wir nun die RPC-Client Verbindung zum Server öffnen und den obigen Befehl ausführen.

Dieser sollte dann mit „Printer Driver Color Laser Printer 55 PS3 successfully installed.“ quittiert werden.

Jetzt verbinden wir den Treiber mit dem Drucker:

setprinter PDF „Color Laser Printer 55 PS3“

Wobei PDF natürlich der Name des Drucker ist wie ich ihn im Cups angelegt habe.

Vom Windows 7 PC aus können wir dann mit  \\SERVERNAME\PDF eine Verbindung zum Drucker herstellen und der Treiber sollte automatisch vom Server nachgeladen werden, eine Abfrage ob man dem Server vertraut und den Treiber wirklich installieren will sollte auch noch erscheinen und mit OK bestätigt werden.

Der Windows XP Treiber für 32 Bit wurde bei mir im Anschluss dann automatisch gefunden und installiert, falls nicht kann man das gleiche auch dafür durchführen und muss nur beim adddriver Befehl das „Windows x64“ durch ein „Windows NT x86“ ersetzen!

So einfach wäre das ganze – nachdem das nach dem Löschen ohne größere Probleme funktioniert hat gehe ich davon aus dass meine ursprünglichen Probleme an einer verkorksten Treiberinstallation vom Windows XP her rühren. Irgendwie wollte der Windows 7 den 64 Bit Treiber nicht zum vorhandenen Drucker zuordnen.

Ich hoffe ich kann dem einen oder anderen das lange rumprobieren ersparen und die Anweisungen helfen ein wenig weiter! 🙂

Kategorien
Linux

Nach Server Update von Ubuntu 10.04 auf 11.10 läuft Samba nicht mehr richtig

Gestern spät Abends habe ich ein Server Update angeschmissen – es sollte von 10.04.3 auf die 11.10’er Version gehen. Aber leider lief das Ganze nicht so glatt wie gewünscht!

Als erstes hat gleich während der Installation ldap bzw. der slapd Probleme gemacht, die Update Routine hat es ordentlich geschmissen – sie konnte kein Backup der ldap-Daten erstellen, hat aber ein paar Dateien schon überschrieben. Also altes ldap nicht mehr am laufen und neues auch nicht.

Lösen kann man das Problem in dem man die Config unter /etc/ldap vor der Installation umbenennt bzw. verschiebt (gleich den ganzen Ordner). Nach der Installation kann man den Ordner dann wieder umbenennen.

Falls man so wie ich kein Backup von der ldap-Datenbank gemacht hat, kann man sich behelfen in dem man auf einem anderen 10.04.3’er PC slapd installiert und sowohl Config als auch Daten überträgt. Dort kann man dann mit slapcat die Daten als ldif-Datei wegschreiben. Mit slapadd lassen sich diese dann am neuen Server wieder installieren.

Damit war’s aber noch nicht genug – alle Clients im Netzwerk melden mir dass kein Domain Controller erreichbar ist!

Die letzten vier Stunden habe ich mit der Fehlersuche verbracht – immerhin erfolgreich!

Den wirklichen Grund habe ich nicht ausgemacht, allerdings die Lösung des Problems – in der /etc/samba/smb.conf Datei stand bisher:

server signing = auto

Und genau das verursacht mit der Samba Version 3.5.11 das besagte Problem mit es ist kein Domain Controller erreichbar!

Ändert man das Ganze wie folgt:

server signing = disabled

Dann klappt’s auch wieder mit den Windows PC’s im Netzwerk! Da es jetzt eigentlich schon wieder Zeit zum Aufstehen wäre und ich zum Umfallen müde bin belasse ich’s jetzt dabei und schau dass ich in’s Bett komme bevor die Sonne aufgeht…!

HP Drucker Treiber sind echt die Seuche! -> HP OfficeJet 6000 mit Linux/Samba

Gewöhnlich lassen sich Druckertreiber mit Linux/Samba recht einfach installieren, ein paar Kleinigkeiten gibts zu beachten – aber wenn er mal installiert ist reicht im Normalfall vom Client aus ein Doppelklick auf den Drucker am Server und schon ist alles installiert.

Nicht so beim HP Officejet 6000 – da bekommt man dann beim Testseite Drucken eine Fehlermeldung dass leider nicht gedruckt werden kann und ob Windoof mit einer Hilfeseite weiterhelfen soll…

Wer die Hilfeseiten kennt, der spart sich das dann schon mal 🙂

Nach längerem Rumprobieren mit den Cups eigenen Druckertreibern und noch ein paar alternative von HP & Co habe ich es dann mit dem HP LaserJet PS 8500 Druckertreiber zum Laufen gebracht.
Unter Linux ist zusätzlich der native HP Officejet 6000 Treiber installiert den eine aktuelle Linux bzw. Cups Version gleich mitliefert.

HP könnte sich da echt mal ein Beispiel bei Brother nehmen, die liefern nicht nur zu fast allen Druckern passende Linux Treiber mit – sondern auch noch funktionierende Windows Treiber, die auch mit Samba und Cups zusammen spielen…

Kategorien
Linux

Samba root-User funktioniert immer wieder nicht…

Seit einiger Zeit habe ich bei einem Server das Problem dass der Samba Administator (in dem Fall root) von Zeit zu Zeit nicht mehr funktioniert.

Als schnellen Fix habe ich ein kleines Script gebastelt welches die Funktion prüft (durch einen Zugriff auf eine Freigabe) und falls das nicht klappt einfach das Kennwort wieder auf den Originalzustand zurück setzt.

Ich gebe zu, die Lösung ist nicht ideal – aber es hat funktioniert und das ist ja schon mal was! 🙂

Heute habe ich mir die Zeit genommen und nach der Ursache gesucht, in letzter Zeit ist mir aufgefallen dass immer wenn ich mich via ssh von einem PC mit Kennwort anmelde (nicht mit gespeichertem ssh-key), der Samba root-User nicht mehr funktioniert.

Mein erster Verdacht war dass in der smb.conf der Passwort-Sync aktiviert ist – allerdings würde der ja nur greifen wenn tatsächlich ein Kennwort geändert wird und das ist hier nicht der Fall – außerdem ist die Einstellung deaktiviert.

Nach weiterer Suche bin ich dann auf PAM gestossen und zwar genauer auf die Datei „/etc/pam.d/common-auth“, dort gibt es einen Eintrag wie diesen:

auth   optional                        pam_smbpass.so migrate

Und wenn man dem nachgeht, dann stößt man auf die Samba Dokumentation das „migrate“ steht also dafür dass automatisch das Samba Kennwort gesetzt wird wenn ein Login erfolgt.

Des Rätsels Lösung ist also einfach das „migrate“ am Ende der Zeile zu entfernen und schon klappt der Login via SSH ohne dass gleich das Samba Administrator-Kennwort zurückgesetzt wird!!!

Kategorien
Linux

Samba Problem nach Update auf Ubuntu 10.04 – Die Prozeduranzahl liegt außerhalb des erlaubten Bereichs

Nach dem Update von 8.04 auf Lucid 10.04.1 haben wir das Problem dass man auf Drucker teilweise nicht mehr zugreifen kann!

Die Ursache ist mal wieder ein Problem mit den Umlauten – langsam verfluche ich den der die in die Deutsche Sprache gebracht hat, nix wie Probleme mit dem Zeugs…

Sobald bei einem Drucker ein Umlaut im Kommentar vorhanden ist, konnte man sich nicht mehr korrekt damit verbinden.

Da hat sich offenbar bei Samba ein Fehler in Sachen Umlaute eingeschlichen, oder es ist mal wieder ein Feature das keiner wirklich wollte 🙂
Also alle Umlaute raus aus sämtlichen Konfigurationsdateien, dann klappts auch wieder mit dem Samba Server!

Kategorien
Linux

Samba Cups-PDF Drucker erstellt Dateien mit falschen Namen

Nach einer Umstellung auf Ubuntu 10.04 druckt der Samba Cups-PDF Drucker zwar noch tadellos, allerdings erstellt er Dateien die nicht mehr den Dokumenten-Titel enthalten sondern mit smbprn beginnen und keine Rückschluss auf den Inhalt des PDF’s zulassen.

Das Problem liegt nicht beim Cups-PDF Script selbst sonder offensichtlich beim Samba Dienst, der scheint den Dokumententitel nicht mehr mit zu schicken.

Ändern kann man das in der /etc/samba/smb.conf mit folgendem Eintrag:

print command = lp -c -t“%J“ -d%p %s;rm %s

Leider reicht ein „service smbd reload“ nicht aus um die Änderung der Einstellung aktiv werden zu lassen, es braucht einen „service smbd restart“ und damit einen Verbindungsabbruch aller aktiven Samba Prozesse. Es soll Programme geben die einem das ein wenig übel nehmen, also Vorsicht! 🙂

Das Ausschlaggebende dabei ist

-t“%J“

dadurch wird der Dokumententitel wie er von der Client Software übergeben wurde von Samba an den Druck-Spooler weitergegeben.