Unix/Linux Dateien nicht anzeigen

Wenn man SAMBA als Fileserver braucht, wird man bald feststellen, dass in den shares die Unix/Linux typischen Dateien, wie z.B. "Punktdateien" (.myFile) oder die Ordner "lost+found" auftauchen.
Mit der Option: "hide dot files = yes" lassen sich diese Dateien nur verstecken, Sie werden in Windows allerdings weiterhin angezeigt, wenn die Option "Versteckte Dateien anzeigen aktiviert ist".

Mit der Option:

veto files = /.*/lost+found/

werden Punktdateien und die Ordner "lost+found" überhaupt nicht mehr angezeigt.

Aber Achtung: Wenn man z.B. mit Linux-Webs arbeitet und noch Dateien wie .htaccess auf den shares hat, werden diese natürlich auch nicht mehr angezeigt. Es empfielt sich in diesem Falle die Option nur bei gewissen shares und nicht global einzusetzen.

Windows in Samba Domäne: „Sie haben keine Berechtigung, Ihr Kennwort zu ändern“

Die Meldung: "Sie haben keine Berechtigung, Ihr Kennwort zu ändern" bekommt man beim Einsatz eines SAMBA-Domaincontrollers meist dann, wenn am passwd-chat etwas nicht stimmt.

Dazu öffnet man die /etc/samba/smb.conf und sucht nach der Zeile: "passwd chat = ".

Hier gibt es bei vielen Distributionen Unterschiede. Um den "richtigen" Dialog rauszufinden gibt man in der Shell einfach "passwd" ein und sieht so die Ablauffolge. Diese muss genauso in der "passwd-chat = " Zeile eingetragen sein, jeweils immer mit * für die Leerzeichen und " %nn " (ohne anführungs/schlusszeichen) dazwischen.

Einieg Beispiele:

passwd chat = <em>Enter</em>new<em>UNIX</em>password:<em> %nn </em>Retype<em>new</em>UNIX<em>password:</em> %nn <em>passwd:</em>password<em>updated</em>successfully*
 
passwd chat = <em>New</em>password:<em> %nn </em>Retype<em>new</em>password:<em> %nn </em>passwd:<em>all</em>authentication<em>tokens</em>updated<em>successfully.</em>
 
passwd chat = <em>New</em>UNIX<em>password</em> %nn <em>ReType</em>new<em>UNIX</em>password<em> %nn </em>passwd:<em>all</em>authentication<em>tokens</em>updated<em>successfully</em>

SAMBA: Umlaute werden durch underscores ersetzt

Nach der Installation von SAMBA kann es vorkommen, dass in den Windows Freigaben alle Umlaute wie ‚ä‘, ‚ö‘,’ü‘ als underscores ‚_‘ dargestellt werden; also aus ‚Sprüche‘ wird dann z.B. ‚Spr_che‘.

Dies ist nervig und lässt sich mit hinzufügen von folgender Zeile:

unix charset = CP850

ganz leicht beheben.

Windows an Samba Domäne anmelden

Wenn man mit Samba einen Domänencontroller macht und einen Windows Client an dieser anmelden will, sind folgende Schritte nötig:

# Gruppe für die Maschinenkonten erstellen, sofern nicht schon getan (dies muss nur einmal gemacht werden):

groupadd -g 101 machines

(Die GID "101" darf unter: /etc/group noch nicht existieren, sonst hier eine andere eintragen!)
Alternativ zu groupadd, kann man auch einfach die Zeile:

machines:x:101:

in die Datei /etc/group hinzufügen.

# In Linux ein Maschinenkonto erstellen und zu Samba hinzufügen
adduser CLIENT_NAME$ -g 101 -d /dev/null -s /bin/false
smbpasswd -a -m CLIENT_NAME$

[stextbox id=“comment“ caption=“Hinweis“]Bei einigen Linux-Distributionen wird man bei der Eingabe von adduser CLIENT_NAME$ Probleme bekommen wegen des Dollarzeichens; es erscheint dann etwa die Meldung "Invalid Username". Dieser fehler liegt nur am adduser-Script, Linux selbst kann sehr gut mit ‚$‘ im Namen umgehen.
In einem solchen fall muss man die Maschinenkonten manuell hinzufügen. Dazu trägt man einfach in der Datei: "/etc/passwd" zuunterst so was ein wie:

CLIENT_NAME$:x:504:101:KOMMENTAR:/dev/null:/bin/false

Dabei steht die erste Zahl (hier: 504) für die User-ID; diese kann Grundsätzlich frei bestimmt werden, darf aber noch nicht existieren. Die Zweite Zahl (101) ist die Gruppe des Maschinenkontos. (Hier das Zuvor bestimmte Gruppenkonto "machines")[/stextbox]

# Ein admin Konto zu Samba hinzufügen
smbpasswd -a root (oder ein anderer admin user)

# Dann sollte man mit dem admin account der Domäne beitreten können.

Einloggen kann man sich dann mit jedem SAMBA user, den man vorher mit:

adduser USERNAME
smbpasswd -a USERNAME

hinzugefügt hat.

Benutzer mit erweitertet Rechten

Machnmal wäre es wünschenswert in SAMBA einem Benutzer erweiterte (Domain-) Rechte zu geben.

Dies geht mit dem "privileges" System.

Einschlaten tut man dies in der smb.conf durch hinzufügen des Eintrags:

enable privileges = yes

Dann kann man mittels:

net rpc rights [list|grant|revoke]

Die Benutzerrechte in der Domäne ändern.

Will man beispielsweise einem Benutzer erlauben, dass er seine Maschine selbstständig zur Domäne hinzufügen kann -wo normalerweise der Domänenadmin erforderlich ist- kann man dies wie folgt machen:

net rpc rights grant 'DOMAINdadmin' SeMachineAccountPrivilege

Weitere Informationen dazu finden sich im SAMBA-HOWTO: http://man.chinaunix.net/newsoft/samba/docs/man/Samba-HOWTO-Collection/rights.html#id2569138

Treiber-Automatik bei cups funktioniert nicht mehr

Manchmal kann, es vorkommen, dass die Treiber-Automatik beim hinzufügen eines Netzwehrdruckers über SAMBA/CUPS nicht mehr funktioniert; Windows bringt in diesem Fall die Fehlermeldung, dass der Treiber nicht auf dem Server vorhanden ist.

Dies kann z.B. passieren, wenn ein update, das printer-treiber Verzeichnis auf dem server löscht, man kann dies herausfinden, wenn man serverprint$ aufruft; darin sollte dann nebst dem CUPS-Treiber noch ein Verzeichnis: W32X863 existieren.

Den Fehler behebt man am besten mit root unter Linux:

cupsaddsmb -v -a

Manchmal kommt auch die Meldung:
Ein Treiber [TREIBERNAME], Windows 2000, Intel konnte nicht installiert werden. Der Vorgang konnte nicht abgeschlossen werden.

Dann muss überprüft werden ob man auf alle Verzeichnisse in serverprint$ schreibzugriff hat. – Denn es reicht nicht immer nur Schreibzugriff auf: W32X863 zu geben, denn manchmal will Windows auch in W32X86 schreiben, oder sogar direkt unter print$!

Ressourcen

Samba Classical Printing Support

NET SEND Nachricht aus Linux heraus schreiben

Manchmal möchte man von einem Linux Server aus die Windows Clients per Pop-Up über etwas informieren, also so wie beim Windows NET SEND Befehl.
Dies geht ganz einfach mittels:

echo "Nachrichtentext" | smbclient -M HOST

mit dem zusätzlichen Parameter -U kann man übrigens das FROM Feld frei angeben (defaultmässig steht der Name des Linux Users von dem die Message kommt)

Das ’smbclient‘-Package muss dazu installiert sein.

[stextbox id=“note“ caption=“Hinweis“]Der Nachrichtendienst ist bei allen Windows Versionen ab XP standarmässig abgeschaltet
und muss natürlich wieder angeschaltet werden, dass dies läuft.[/stextbox]

apache: Automatische SSL Umleitung

Manchmal macht es Sinn gewisse Seiten oder Unterseiten automatisch auf eine SSL Seite umzuleiten, etwa: "webmail.example.com" oder "myshop.example.com/bestellung/"

Dies geht ganz einfach mit einer .htaccess Direktive, oder alternativ global ein einem apache config file (bei Debian z.B.: /etc/apache2/conf.d/ssl-redirect.conf )
Continue reading apache: Automatische SSL Umleitung

exim: mailqueue bereinigen

Der Mailserver Exim ‚friert‘ E- Mails, die nicht Zustellbar sind, aber auch nicht gebounct werden können, ein und belässt sie in der Queue, bis sie manuell von einem Administrator gelöscht oder ‚aufgetaut‘ werden. Es sind Optionen in der Konfiguration vorgesehen, um solche ‚frozen‘ Mails nach Ablauf einer gewissen Zeitspanne automatisch aus der Queue zu entfernen. Manchal möchte man das aber auch selbst tun, bspw. dann, wenn aus irgendwelchen Gründen (bspw. weil die eigene Absenderadresse in einige tausend Spam-Mails hinein-gefälscht wurde) die Queue binnen kurzer Zeit mit sochen Mails voll läuft.

Diese "frozen-messages" kann man ganz einfach löschen mittels:

/usr/exim/bin/exipick -zi | xargs exim -Mrm

Ebenso kann man messages löschen, die z.B. schon seit über einem Tag in der queue sind:

exiqgrep -o 86400 -i | xargs exim -Mrm

Credits: http://www.th-h.de/infos/software/rmfrozen.php

Webseiten mirroren mit wget

Wget kennen viele schon, die ihre ersten Schritte mit Linux gemacht haben. 😉

Tatsächlich kann man mit dem praktischen tool, aber noch viel mehr machen, z.B. eine ganze Webseite herunterladen „spiegeln“.

Und so gehts; einfach an der Konsole diesen Befehl einfügen:

wget -mk http://www.example.com/

Der paramter ‚-m‘ sagt, dass ihr grundsätzlich die Seite mirroren wollt und ‚-k‘ wandelt in den Seite links die z.B. auf http://www.example.com/css/main.css verweise in lokale links a’la: css/main.css um.

[stextbox id=“warning“ caption=“Achtung bei grossen Websites“]Falls ihr grosse Webseiten herunterladet solltet ihr zusätzlich den parameter ‚-w 20‘ angeben um die Webseite nicht zu überlasten![/stextbox]

[stextbox id=“tip“ caption=“Tip: Blockierte Webseiten“]Es gibt Seiten, die gewisse User-Agent wie z.B. „wget“ den Zugriff auf die Seiten verweigern.
Doch nicht verzagen: Einfach den parameter:

--user-agent Mozilla/4.0

beim wget Kommando anfügen und die Webseite lässt uns passieren! ;)[/stextbox]

Dieser Tip stammt von der Seite: FOSSwire: FOSSwire Create a mirror of a website with Wget und blog.emeidi.com: Kleine wget-Tricks

Manchmal lädt es dann Bilder, usw. nicht, so dass man einen längeren wget Befehl benötigt:

wget \
     --recursive \
     --level 5 \
     --no-clobber \
     --page-requisites \
     --adjust-extension \
     --span-hosts \
     --convert-links \
     --restrict-file-names=windows \
     --domains example.com \
     --no-parent \
         example.com

Um dies zu automatisieren kann man auch ein kleines Script schreiben.