Mein Blog...
- ↓ "Das Freeman Tor" - Der Film
- ↓ NFS mount in fstab will nicht.
- ↓ django TEMPLATE_STRING_IF_INVALID im admin
- ↓ django template: rekusive Darstellung...
- ↓ SiteMap.html
- ↓ SiteMap_items.html
- ↓ VirtualBox: Dienst nach außen anbieten...
- ↓ Gemeinsamer Ordner unter Linux
- ↓ umask anpassen
- ↓ rechte mit Skript anpassen
- ↓ Fazit
- ↓ Links
- ↓ WinXP: Sicherheitswarnung im lokalen Netz?
- ↓ Links
- ↓ DD-WRT: DHCP static leases
Inhaltsverzeichnis
↑ NFS mount in fstab will nicht. #
Vor 1 Jahr, 1 Monat veröffentlicht, durch jens.Unter Ubuntu 9.04 hab ich in der fstab einen NFS Eintrag hinzugefügt, mit der Option "auto". Dennoch wird nach dem booten kein mount gemacht :(
Ein mount -a in Terminal funktioniert allerdings ohne Probleme.
Vielleicht liegt es ja an den gemeldeten Bug: nfs mounts specified in fstab is not mounted on boot.
Tipp: Als work-a-round hab ich einfach in /etc/rc.local ein mount -a eingetragen ;)
Siehe auch: http://forum.ubuntuusers.de/topic/nfs-in-fstab-mountet-nicht-nach-boot/
(Last update: 20. Nov. 2009, 11:01 by jens.)
↑ django TEMPLATE_STRING_IF_INVALID im admin #
Vor 1 Jahr, 1 Monat veröffentlicht, durch jens.Eigentlich sagt die django Doku, man darf settings.TEMPLATE_STRING_IF_INVALID nur für's debugging nutzten, siehe auch: http://docs.djangoproject.com/en/dev/ref/templates/api/#how-invalid-variables-are-handled
Einige Sachen im Admin Panel sind nämlich mit einem gesetzten Wert kaputt. Das ist bekannt: http://code.djangoproject.com/ticket/3579
Ich halte es für eine schlechte Idee TEMPLATE_STRING_IF_INVALID deswegen generell nie zu benutzten. So sieht man "Fehler" schlechter.
Damit das django admin Panel aber nicht ganz so defekt ist, nutzte ich den Patch:
1 2 3 4 5 6 7 8 9 10 11 12 13 | if settings.TEMPLATE_STRING_IF_INVALID != "": from django.contrib.auth import admin as auth_admin from django.contrib.admin import options def patched_render_to_response(*args, **kwargs): old = settings.TEMPLATE_STRING_IF_INVALID settings.TEMPLATE_STRING_IF_INVALID = "" result = render_to_response(*args, **kwargs) settings.TEMPLATE_STRING_IF_INVALID = old return result options.render_to_response = patched_render_to_response auth_admin.render_to_response = patched_render_to_response |
(Last update: 20. Nov. 2009, 11:01 by jens.)
↑ django template: rekusive Darstellung... #
Vor 1 Jahr, 1 Monat veröffentlicht, durch jens.Eine Lösung um rekusive Daten mit der django Template engine darzustellen, ist die Aufteilung in zwei Template Dateien und das einbinden per include. Ein Beispiel:
↑ SiteMap.html #
1 2 | <h1>SiteMap</h1> {% include "SiteMap_items.html" %} |
↑ SiteMap_items.html #
1 2 3 | <ul>
{% for node in nodes %}
|
Update:
Hab SiteMap_items.html geändert. Denn ganz wichtig: der Dateiname muß bei include als Variable übergeben werden. Ansonsten bekommt man eine Endlosschleife! Das dumme ist, man sieht es nur bei settings.TEMPLATE_DEBUG == True ansonsten wird nur eine warnings ausgelöst!
Update2:
Noch ein Hacken gibt es. Weil man den Dateinamen als Variable übergibt, wird das angegebene Template neu geladen. Somit verursacht das ganze einen recht großen Mehraufwand, der eigentlich unnötig ist. Das habe ich daran gemerkt, das dbtemplate sehr viele Datenbank Abfragen verursacht. Allerdings habe ich dafür ein Ticket geöffnet, denn durch einfaches Caching kann man zusätzliche DB Abfragen vermeiden. Außerdem sollte man das normale dbtemplates caching aktivieren.
Siehe auch:
(Last update: 20. Nov. 2009, 11:01 by jens.)
↑ VirtualBox: Dienst nach außen anbieten... #
Vor 1 Jahr, 1 Monat veröffentlicht, durch jens.Wenn an keine Lust hat eine Netzwerk Brücke einzurichten, kann auch prima per NAT und Port-Weiterleitung arbeiten. Ist recht leicht einzurichten. Ein Beispiel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #!/bin/bash function verbose_eval { echo $* eval $* } function add_port_forward { echo Try to remove old values for $1 $2 verbose_eval VBoxManage --nologo setextradata "$1" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/$2/Protocol" verbose_eval VBoxManage --nologo setextradata "$1" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/$2/GuestPort" verbose_eval VBoxManage --nologo setextradata "$1" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/$2/HostPort" echo --------------------------------------------------------------------- echo Add for $1 $2 verbose_eval VBoxManage --nologo setextradata "$1" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/$2/Protocol" "$3" verbose_eval VBoxManage --nologo setextradata "$1" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/$2/GuestPort" $4 verbose_eval VBoxManage --nologo setextradata "$1" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/$2/HostPort" $5 echo --------------------------------------------------------------------- echo Please check: verbose_eval VBoxManage --nologo getextradata "$1" enumerate | grep $2 echo --------------------------------------------------------------------- } add_port_forward VM_NAME apache TCP 80 8080 add_port_forward VM_NAME SSH TCP 22 8081 |
Somit sind Webserver (Port 80) und SSH (Port 22) auf dem Host auf Port 8080 bzw. 8081 erreichbar. "VM_NAME" muß natürlich angepasst werden ;)
Weitere Info's: http://wiki.ubuntuusers.de/VirtualBox/Netzwerk#Portweiterleitung
(Last update: 20. Nov. 2009, 11:01 by jens.)
↑ Gemeinsamer Ordner unter Linux #
Vor 1 Jahr, 2 Monate veröffentlicht, durch jens.↑ umask anpassen #
Die umask entzieht neu erstellen Dateien Rechte. Der default wert 022 auf 002 ändern, in Datei /.bash_profile und /.profile.
↑ rechte mit Skript anpassen #
Die Benutzer die auf den Dateien der anderen zugreifen können sollen, habe ich in der User-Gruppe users gepackt. Mit diesem Skript werden alle Dateien und Verzeichnisse angepasst und mit einem Sticky Bit versehen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #!/bin/bash set_rights() { echo echo Bearbeite: $1 echo echo Gruppe setzten sudo chown -R .users $1 echo echo Verzeichnissrechte setzten sudo find $1 -type d -exec chmod g+xrws {} \; echo echo Dateirechte setzten sudo find $1 -type f -exec chmod g+rw {} \; echo echo } set_rights ${HOME}/Photos/ set_rights ${HOME}/MP3s/ |
↑ Fazit #
Alles im allem ein wenig umständlich. Kennt jemand eine einfachere Lösung?
↑ Links #
(Last update: 20. Nov. 2009, 11:01 by jens.)
↑ WinXP: Sicherheitswarnung im lokalen Netz? #
Vor 1 Jahr, 2 Monate veröffentlicht, durch jens.Fehler meldung:
Auf das angegebene Gerät, bzw. den Pfad oder die Datei kann nicht zugegriffen werden. Sie verfügen eventuell nicht über ausreichende Berechtigungen, um auf das Element zugreifen zu können.
oder
Der herrausgeber konnte nicht verifiziert werden. Möchten Die diese Software ausführen?
Eine Lösung, die IP Adresse des Fileservers in die Zone "Lokales Intranet" eintragen, z.B. über diese .reg Datei:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges]
@=""
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range1]
"file"=dword:00000001
":Range"="192.168.xx.xx"
Die IP Adresse natürlich anpassen ;)
↑ Links #
- http://mactricks.de/Betriebssystem/Windows/SMB-Sicherheit/
- http://support.microsoft.com/kb/182569 (Beschreibung der Registrierungseinträge für Internet Explorer-Sicherheitszonen)
(Last update: 20. Nov. 2009, 11:01 by jens.)
↑ DD-WRT: DHCP static leases #
Vor 1 Jahr, 2 Monate veröffentlicht, durch jens.Auf meinem Router ist die freie Firmware DD-WRT in der aktuellen v24.
Ich setzte im DHCP Server gern statische IP Zuweisungen, anhand der MAC Adresse. So haben die Rechner immer die selbe IP, ohne das ich auf dem Client das extra einstellen muß.
Leider kann man in der Web GUI die DHCP Statische Zuweisungen nur schlecht verwalten :( Es ist nicht möglich einen Eintrag zu ändern. Man kann auch immer nur den letzten Eintrag löschen. Somit ist die GUI dafür praktisch unbrauchbar.
Somit muß man das ganze per SSH erledigen. Den SSH Zugriff muß man unter "Services" erstmal einschalten und kann dabei am besten seinen Public Key (z.B. /.ssh/id_rsa.pub) unter "Authorisierte Schlüssel" einfügen.
Nun kann man sich einloggen, mit ssh root@192.168.1.1 (IP evtl. anpassen).
Die Datei /etc/lease_update.sh ist recht interessant. Dort kann man ein wenig die funktionsweise von /usr/sbin/nvram abschauen. Das Skript selber setzt allerdings dnsmasq Einträge und nicht die vom "DHCP Server".
Generell werden alle Einstellungen im NVRAM gespeichert. Alle Einstellung kann man einsehen mit nvram show. Interessant für die DHCP Leases ist:
1 | nvram show | grep "lease"
|
Das ganze geht natürlich auch ohne eingeloggt zu sein:
1 | ssh root@192.168.1.1 "nvram show" | grep "lease" |
Die normalen DHCP Server Einstellungen sind static_leasenum (Anzahl der Einträge in der Web GUI) und static_leases beinhaltet die eigentlichen Regeln.
Mit einem kleinen Skript kann man sich das leben erleichern:
1 2 3 4 5 6 7 8 9 10 | #!/bin/bash ROUTER_IP=192.168.1.1 ssh root@${ROUTER_IP} nvram set static_leasenum=9 ssh root@${ROUTER_IP} nvram set static_leases=\"00:xx:xx:xx:xx:xx=Rechner1=192.168.1.2 \ 00:xx:xx:xx:xx:xx=Rechner2=192.168.1.3 \ 00:xx:xx:xx:xx:xx=Rechner3=192.168.1.4\" echo ---------------------------------------------------------------------- ssh root@${ROUTER_IP} nvram show | grep "static_leases=" |
Wichtig: Man muß aufpassen, wie die Leerzeichen und Anführungszeichen gesetzt sind. Ansonsten werden schnell Einträge abgeschnitten. Deswegen sollte man die Einstellungen nochmal in der Web Gui http://192.168.1.1/Services.asp überprüfen und dort dann mit "Anwenden" die neuen Einstellung auch scharf stellen ;)
So kann man gemütlich mit seinem bevorzugten Editor die Datei editieren. Nach einem ausführen, landen die Daten auf dem Router ;)
(Last update: 20. Nov. 2009, 11:01 by jens.)
- /de/Blog/feed/Tip/feed.atom ( Atom Syndication Format v1.0 )
- /de/Blog/feed/Tip/feed.rss ( Really Simple Syndication v2.01rev2 )