inicio eMail me! Abonnieren

Einträge der Kategorie Linux

MySQL root-Passwort zurücksetzen/recovern

Man lernt ja angeblich nie aus – und es ist tatsächlich möglich. Beim Daemon-Start von MySQL kann direkt SQL durchgeschleift werden… unfassbar wie ich finde! Seht selbst:

MySQL root-Pass zurücksetzen

Strato 1212HE Opteron 1000Mhz CPU Bug cat /proc/cpuinfo

Ich konnte es kaum glauben. Man bestellt sich einen hoch angepriesenen Opteron 1212HE Server von Strato, der mit 2000 Mhz ausgewiesen wird. Gutgläubig verlässt man sich darauf und fährt den Server für ein paar Wochen ganz normal. Nach ein paar systemkritischen Anwendungen mehr, fragt man sich, warum der Dual-Core so langsam läuft und mach mal einen profilaktischen cat /proc/cpuinfo. Ich traute meinen Augen kaum: Beide Cores waren underclocked auf 1000Mhz !

Ob es nun ein Fehler von Strato oder ein openSuSE 10.2 Sicherheitsfeature ist – ich weiß es nicht. Man kann Strato aber getrost unterstellen, die Systeme falsch konfiguriert zu haben!

Die Abhilfe schaffte dann letztlich der folgende Command:

cpufreq-set -f 2GHz

Ein Schelm, wer Strato Energiesparmaßnahmen unterstellt.

Automatische Anmeldung am root-Server via Private/Public Key

Das ist ein recht simples Verfahren, um sich ohne Passworteingabe am Server anzumelden.
Folgende Programme werden benötigt:

  1. WinSCP – Dateiverwaltung via SSH
  2. PuTTY – Terminal Programm
  3. Pageant – Programm zur Bereitstellung des Private Keys
  4. PuTTYgen – Programm zur Generierung des Private Keys/Public Keys

Wenn wir all diese Programme heruntergeladen haben, starten wir PuTTYgen, um ein Private/Public Key Paar zu generieren. Innerhalb des Programms wählen wir schlichtweg Generieren aus und bewegen die Maus solange, bis die Keys generiert wurden. Vergessen sie nicht, eine Key passphrase anzugeben, also ein Passwort, welches den Private Key vor dem Gebrauch durch Dritte schützt.

PuTTYgen

PuTTYgen

Danach speichern Sie sowohl Private Key als auch Public Key über Save public key und Save private key, vorzugsweise in einem Verzeichnis, dass Sie auch wiederfinden: C:\Programme\Putty\
Ich bevorzuge die Dateinamen publickey.txt und privatekey.ppk .
Doch das reicht leider noch nicht aus. PuTTYgen besitzt ein Feld mit der Headline Public key for pasting into OpenSSH authorized_keys file. Diesen benötigen wir auf jeden Fall, also kopieren Sie diesen und speichern ihn am besten ebenfalls in ihr Verzeichnis unter dem Namen authorized_keys.txt ab.

Nun öffnen Sie das Programm Pageant und laden dort den Private Key (privatekey.ppk) über den Button Add Key. Pageant hat die Angewohnheit, sich rechts unten in der Statusbar einzunisten, was später jedoch von Vorteil sein wird.

Pageant

Pageant

Weiter geht es mit der Installation von WinSCP. Sobald Sie WinSCP gestartet haben erstellen Sie eine neue Session über den Button Neu. Dort tragen Sie ihre Anmeldedaten zunächst ohne Private Key ein und klicken auf Anmelden. Ich melde mich an meiner openSuse Box mit dem Benutzer root an. WinSCP führt mich danach automatisch in das Stammverzeichnis des Benutzers root. Sollte dies nicht geschehen sein, so wechseln Sie bitte in das Verzeichnis /root/ .

WinSCP Anmeldung

WinSCP Anmeldung

Wir benötigen innerhalb von /root/ einen Ordner genannt .ssh (bitte beachten Sie den Punkt am Anfang!). Ist dieses Verzeichnis schon vorhanden, dann wechseln Sie in dieses. Ansonsten erstellen Sie es einfach mit F7.
Wir sind nun in unserem .ssh Verzeichnis. Sollte dies leer sein, sind die nächsten Schritte nur noch Formsache. Sie kopieren die lokale Datei authorized_keys.txt in das Verzeichnis .ssh des Servers hinein. Danach nennen Sie die Datei auf dem Server um in authorized_keys .
Ist die Datei authorized_keys schon vorhanden, müssen Sie den Inhalt von authorized_keys.txt ans Ende der Datei anfügen. WinSCP kann Dateien editieren via Rechte Maustaste => Bearbeiten.

Puh, geschafft. Jetzt kommt PuTTY zum Zuge. Starten Sie es und geben Sie wie gewöhnlich ihren Host Name an. Links in den Einstellungen navigieren Sie zu folgendem Menü: Connection => SSH => Auth
Dort finden sie am Ende den Eintrag Private key file for authentication. In dieses Feld müssen sie ihre privatekey.ppk auf ihrer Festplatte heraussuchen und eintragen lassen. Danach gehen Sie zu Connection => Data und geben bei Auto-login username ihren Benutzernamen an ( in meinem Fall: root ). Vergessen Sie nicht die neuen Einstellungen in einer Session abzuspeichern, sonst sind diese Einstellungen beim nächsten Login verloren.

PuTTY mit Private Key

PuTTY mit Private Key

Geschafft! Auf Open klicken und sich freuen, dass Sie nie wieder für ihren Root-Server Benutzername und Passwort angeben müssen.

Putty und das Strg + S (Ctrl + S) Paradoxon

Mehr als 2 Jahre hat mich dieses Problem nun beschäftigt. Man öffnet vi in Putty, editiert irgendwelchen Krimskrams und aus lauter Gewohnheit heraus drück man natürlich nicht :wq sondern Strg + S und die Session freezed. Jahrelang habe ich einfach die Session geclosed, mich geärgert und weiter gemacht. Dabei ist die Lösung so simpel:

Strg + Q

Links

PuTTy

Top 10 meiner Linux Commands

Da ich in regelmäßigen Abständen die Linux Commands einfach mal vergesse, führe ich am Besten mal eine Top 10 meiner am meist genutztesten Commands.

1. ls -l

Wer kennt es nicht. Allein schon -l ist zuviel des guten. Daher gibt es nur den guten alten bash.bashrc Weg!

alias ls='ls --color=auto -l -all'

Natürlich gibt es für die DOS Nerds auch noch den dir alias, aber selbst dort ist ein Buchstabe zu viel!

2. cd ..

Der Abhass meinerseits, da ich selbst ein Kind des DOS bin und cd.. meine Wege gepflastert hat. Aber auch hier: bashrc schafft Abhilfe in der Not.

3. screen -dmS

Bevor ich diesen Daemon gefressen hatte, dauerte es auch einige Zeit. Ich war versucht desöfteren ein & zu verwenden, aber letztlich siegte dann der Daemon!

4. wget -r

Rekursiv Dateien herunterladen von einer Website. Ob Bilder, MP3s oder Videos – damit gehts flott und einfach.

5. vi/vim

Der wohl schlichteste aber auch gleichzeitig leistungsvollste Editor. Es lohnt sich natürlich immer einen Link von vi auf vim zu erstellen. Hier die wichtigsten vi Commands:

  1. :qw
    Quit, Write – die Commands können natürlich auch einzeln getätigt werden. :q oder :w
    Manchmal möchte man auch den Editor verlassen ohne zu speichern: :q!
  2. i
    Insert – Zeilen editieren (Mit ESC kommt man aus dem Editor und kann wieder Commandos eingeben)
  3. dd
    Zeile löschen
  4. Strg + u
    Undo – den letzten Vorgang rückgängig machen
  5. /suchString
    Sucht vorkommen von suchString in dem Text. Mit n kann wetergesucht werden.

6. mv

Jemals versucht auf elegante Weise eine Datei umzubenennen ? mv ist dafür wie geschaffen, auch wenn es eigentlich Dateien verschieben soll. Doch wie sooft hat es auch mir zwangsläufig schlaflose Nächte bereitet, denn mv fragt nicht nach, ob es Dateien überschreiben darf.

7. su

su steht als Abkürung für switch user und veranlasst Linux, den Benutzer zu wechseln. Ein sehr nützlicher Weg, um Programme nicht als root auszuführen.

8. grep

Dateiinhalte auf der Console nach gewissen Zeichketten durchsuchen.

9. crontab -e

Cronjobs editieren.

10. rm -rf /var/mail/.support/.new

Das, was ich jeden morgen als erstes eingebe.

Trac und Python Auth mit Subdomains

Es gibt immer wieder Situationen, in denen man den Apache Authentication Handler nicht über die .htaccess/.htpasswd sondern direkt über ein Python Script steuern möchte. Dies trifft generell auf viele Bridges zu, welche einen Auth Handler benötigen, welcher Benutzerdetails aus einer Datenbank abfragen muss.

Doch ist dies nicht immer ganz einfach, zumindest nicht bei dem “enhanced wiki and issue tracking system” Trac.

Ich hoffe, dass dieses Snippet irgend jemandem einmal helfen wird, schneller an sein Ziel zu kommen, und nicht wie ich einige Tage an diesen Mist verschwendet.


    SetHandler mod_python
    PythonInterpreter main_interpreter
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnv /path/to/trac/
    PythonOption TracUriRoot /trac/
    SetEnv PYTHON_EGG_CACHE /path/to/trac/plugins/
    #PythonDebug On


# This handles => www.dummy.com/trac/login


    AuthBasicAuthoritative Off
    AuthType Basic
    AuthName "dummy.com login"
    Require valid-user
    PythonAuthenHandler smf_auth


    # Path for Python to find the Auth-Script: "smf_auth.py"
    PythonPath "sys.path+['/path/to/trac']"

# This creates Vhost: trac.dummy.com => /path/to/trac


DocumentRoot /path/to/trac/
ServerName trac.clansuite.com



php_admin_value open_basedir /path/to/:/usr/local/lib/php:/tmp
php_admin_flag engine Off


suPHP_Engine on
suPHP_UserGroup clansuitecom www-users
AddHandler x-httpd-php .php .php3 .php4 .php5
suPHP_AddHandler x-httpd-php


    SetHandler mod_python
    PythonInterpreter main_interpreter
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnv /path/to/trac/
    PythonOption TracUriRoot /
    SetEnv PYTHON_EGG_CACHE /path/to/trac/plugins/

    PythonPath "sys.path+['/path/to/trac']"



    AuthBasicAuthoritative Off
    AuthType Basic
    AuthName "dummy.com login"
    Require valid-user
    PythonAuthenHandler smf_auth



    AuthBasicAuthoritative Off
    AuthType Basic
    AuthName "dummy.com login"
    Require valid-user
    PythonAuthenHandler smf_auth