Donnerstag, 29. Dezember 2022

RedHat/Fedora/Rocky Linux...: Upgrade MariaDB 10.3 auf 10.5

 RedHat und alle Abkömmlinge, wie in meinem Fall Rocky Linux, beherrschen für viele Pakete mehrere "Streams", so auch für Maria DB. Setzt man also z.B. unter Rocky Linux 8 folgenden Befehl ab:

sudo dnf module list mariadb

erhält man eine Auflistung der möglichen Streams:

Rocky Linux 8 - AppStream

Name      Stream   Profiles                  Summary

mariadb   10.3     client, galera, server    MariaDB Module

mariadb   10.5     client, galera, server    MariaDB Module

 Zwischen diesen Streams kann man nun mit einem Befehl umschalten, bei mir ohne Auswirkungen auf die Inhalte der Datenbank. Der dnf-Befehl (vgl. die DNF-Befehlsreferenz) war ursprünglich mit einem dis- und enable verbunden, inzwischen scheint aber der neuere Befehl switch die bevorzugte Methode zu sein:

sudo dnf module switch-to mariadb:10.5

Die aktuellere Maria DB-Version wird installiert und aktiviert und steht dann sofort der Anwendung zur Verfügung.

Montag, 14. März 2016

Intrexx und TinyMCE: HTML einfügen

Einfügen von HTML-Code in ein TinyMCE-Textfeld unter Intrexx

Problem:

In ein Intrexx-Textfeld soll via JavaScript HTML-Code eingefügt werden (konkret der Link auf einen anderen Artikel).

Lösung:

tinyMCE.activeEditor.execCommand('mceInsertRawHTML',false,htmlText);
So weit, so einfach.

Problem 2:

Nun filtert TinyMCE leider den HTML-Code. So wird z.B. aus:
<a id="ID_B9XXXX" class="Link_Standard" onclick="tuWas!" href="#">Hinweise für Benutzer</a>
ein schlichtes:
<a id="ID_B9XXXX" href="#">Hinweise für Benutzer</a>
 Damit funktioniert der Link nicht mehr!

Eine vorläufige Lösung ist folgende Zeile, die die Filterung aufhebt:
tinymce.activeEditor.schema.addValidElements("a[onclick|id|class|href]");
Das funktioniert.
Wenn man allerdings das Textfeld beim nächsten Mal bearbeitet, wird beim Aufruf der HTML-Code des bestehenden Links wieder entfernt!

Lösung 2:

Man erstellt die Datei:
internal/system/vm/custom/custom_TinyMCE.vm
mit dem Inhalt:
extended_valid_elements : "+a[id|class|onclick|href]"
Anschließend setzt man in den Expert-Attributen der jeweiligen Textfelder das neue Attribut:
tiny-userconfiguration: internal/system/vm/custom/custom_TinyMCE.vm
Anschließend sollte der HTML-Code unangetastet bleiben.

Mittwoch, 6. Mai 2015

Multi-Domain-Zertifikate (SAN) erstellen

Problem:

Auf einem Server (Apache) liegen mehrere Domains, die von Tomcat ausgeliefert werden. Die Verschlüsselung kann nicht mit einem normalen Zertifikat für jeweils eine Domain durch Tomcat erfolgen, weil dieser keine unterschiedlichen Zertifikate verwalten kann. Und Apache weiß überhaupt nichts von den unterschiedlichen Domains, die Trennung erfolgt bei mir erst eine Ebene weiter unten, beim Tomcat.
Man benötigt also ein SAN (Subject Alternative Name)-Zertifikat, das mehrere Domainnamen in einem Zertifikat unterbringt. Dieses kann dann dem Apache übergeben werden, dem dann egal sein kann, welche Domain gerade aufgerufen wurde, er hat immer das richtige Zertifikat parat.
Kostenlose SAN-Zertifikate habe ich leider keine gefunden, aber es gibt recht günstige Anbieter auf dem Markt. Bei meinem Versuch, dort ein Zertifikat zu beantragen und auf dem Server korrekt zum Laufen zu bringen, ergaben sich einige Stolperstellen, deshalb hier die Beschreibung des Lösungswegs.

Lösung:

Zertifikatsantrag erstellen

Bevor man bei einem Anbieter ein Zertifikat kaufen kann, muss man auf dem eigenen Server erst einen passenden Antrag zusammenstellen. Dabei erstellt man das Schlüsselpaar (öffentlicher und privater Schlüssel) sowie eine Antragsdatei, die einige Angaben über den eigenen Server enthält. Wie man diese Dateien erstellt, dafür gibt es im Netz viele Anleitungen. Allerdings unterscheidet sich das Erstellen von SAN-Zertifikatsanträgen an ein paar entscheidenden Stellen vom üblichen Vorgehen, schließlich braucht man nicht nur einen, sondern noch eine oder mehrere weitere (Alternative Name...) Domainadressen.
Zunächst erstellt man ein Schlüsselpaar (privat und öffentlich) mit dem Befehl
openssl genrsa -out example.com.key 2048 
wobei der Dateiname example.com beliebig ist.
Aus diesem Schlüssel (dem öffentlichen Teil natürlich, der private wird nicht "aus der Hand" gegeben!) kann man jetzt einen Zertifikatsantrag erstellen. Allerdings muss man dazu zunächst die Konfiguration des betreffenden Programms anpassen. Hierzu erstellt man ein File csr.conf mit folgendem Inhalt:
prompt = yes
distinguished_name = req_distinguished_name
req_extensions = req_ext

[req_distinguished_name]
commonName = Common Name
commonName_default = www.adresse1.de
countryName = Country Name
countryName_default = DE
countryName_min = 2
countryName_max = 2
stateOrProvinceName = State
stateOrProvinceName_default = BW
localityName = City
localityName_default = Reutlingen
organizationName = Organization
organizationName_default = Meine Organisation
organizationalUnitName = Unit
organizationalUnitName_default = Meine Einrichtung

[req_ext]
subjectAltName = @alt_names


[alt_names]
DNS.1 = www.adresse2.de
DNS.2 = www.adresse3.de

Bei meinem Zertifikateanbieter mussten die Angaben zur Organisation usw. im Zertifikatsantrag stehen, blieben die Felder leer, konnte man den Antrag nicht abschließen, die Felder aber auch nicht nachträglich ausfüllen.
Jetzt kann man das Zertifikat erstellen mit dem Befehl:
openssl req -new -key example.com.key -config csr.conf -out example.com.csr
openssl fragt in der Folge ein paar weitere Parameter ab, bis schließlich das csr-File erstellt ist.
Jetzt kann man mit der csr-Datei den das Zertifikat beim Anbieter beantragen. Am Ende des Prozesses sollte man eine crt-Datei (oder pem-Datei) erhalten (oder nur den Inhalt, den man in eine neue Datei hineinkopiert).

SSL auf dem Server einrichten und aktivieren

Jetzt muss man die Dateien an den richtigen Ort verschieben. Bei Linux mit Apache sind das folgende Pfade:
Die crt/pem-Datei nach /etc/ssl/certs/
Die key-Datei nach /etc/ssl/private/

Jetzt muss man nur noch dem Apache beibringen, zukünftig mit SSL zu verschlüsseln. Dazu sind folgende Änderungen/Ergänzungen in /etc/apache2/sites-available/000-default.conf notwendig:
Sofern alle Anfragen, auch an http.//... auf https://... umgeleitet werden sollen, kommen in den Abschnitt <VirtualHost *:80> folgende Zeilen hinein:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
In den Abschnitt <VirtualHost *:443> (wenn nicht vorhanden, dann von oben kopieren und abändern, DocumentRoot sollte vorhanden sein) kommen folgende Zeilen:
SSLEngine On
SSLCertificateFile /etc/ssl/certs/example.com.pem
SSLCertificateKeyFile /etc/ssl/private/example.com.key
Bei meinem Zertifikatsanbieter war noch ein ChainFile notwendig, weil kein Root-Zertifikat des Anbieters in Firefox & Co installiert war. Sofern notwendig, wird dies mit der Zeile
SSLCertificateChainFile /etc/ssl/certs/XYZChain.pem
eingebunden. (Vorher muss das File natürlich vom Anbieter heruntergeladen und hierher kopiert werden...)
Jetzt kann man noch seine SSL-Konfiguration anpassen, indem man unsichere Protokolle ausschließt, hier nutzt man am besten den Mozilla-SSL-Configuration-Generator und fügt dann die Zeilen
SSLProtocol ...
SSLCipherSuite ...
SSLHonorCipherOrder on 
ein.
Nach einem Apache reload sollte jetzt die SSL-Verschlüsselung der beantragten URLs funktionieren, zu überprüfen mit http://sslzilla.de/zertifikatstest.php.




Mittwoch, 28. Januar 2015

https-Webserver unter Ubuntu 14.04 mit VirtualHosts

Problem:

Wie stellt man für einzelne VirtualHosts (in meinem Fall: Eine Moodle-Installation) die SSL-Verschlüsselung ein, ohne dass andere VirtualHosts unter der gleichen IP (in meinem Fall: Eine Joomla-Installation) betroffen sind?

Vorgehen:

  • Wie bei heise-online hervorragend beschrieben ein SSL-Zertifikat erstellen (kostenlos, recht einfach und problemlos bei StartSSL). Der Dateiname kann dabei die URL sein, muss aber nicht. Die 3 Dateien (Zertifikat, Schlüssel und Intermediate-Zertifikat)
  • Das SSL-Modul von Apache laden und die Konfiguration neu einlesen
sudo a2enmod ssl
sudo service apache2 force-reload 
  •  Wenn nicht schon vorhanden, neue VirtualHosts anlegen:
    • Die Datei /etc/apache2/sites-available/000-default.conf zweimal kopieren nach /etc/apache2/sites-available/www.domain1.de.conf und ...../www.domain2.de.conf
    • (Mindestens) folgende Angaben eintragen (in meinem Fall ist Domain1 die moodle-Installation und Domain2 die joomla-Installation)
    • Achtung: [ und ] bitte durch < und > ersetzen! Lässt sich im blöden Blogger-Editor nicht richtig formatieren!!!
[VirtualHost *:80´]
ServerName www.servername1.de
DocumentRoot /var/www/moodle/
[Directory /var/www/moodle]
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
[/Directory]
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
[/VirtualHost]

[VirtualHost *:443]
ServerName www.servername1.de
DocumentRoot /var/www/moodle/
[Directory /var/www/moodle]
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
[/Directory]
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/moodle.crt
SSLCertificateKeyFile /etc/ssl/private/moodle.key
SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.ca.pem
[/VirtualHost]
    • Das Entsprechende auch mit der zweiten Seite machen, allerdings nur mit dem ersten VirtualHost auf Port 80, wenn die zweite Seite nicht auch verschlüsselt werden soll.
    • Die neuen Seiten in Apache aktivieren:
sudo a2ensite www.domain1.de.conf
sudo a2ensite www.domain2.de.conf
sudo service apache2 force-reload 
  • Ab sofort sollte sich die Webseite auch über https://www.domain1.de aufrufen lassen. Will man das zum Standardverhalten machen (Weiterleitung von http auf https), findet sich hier eine ausreichende Anleitung dafür.
  • Anmerkung für Moodle: In Moodle kann man einstellen (Webseiten-Administration-http-Sicherheit), ob man SSL nur für den Login verwenden will oder für die gesamte Seite, wobei dann der Moodle-eigene Cache nicht funktioniert. Die Performance-Auswirkungen habe ich noch nicht getestet.

Freitag, 21. Februar 2014

Farbige Plakate in Schwarz-Weiß umwandeln mit Gimp

Problem:

Im Unterricht wurden farbige Plakate beschriftet, abfotografiert und sollen nun auf ein Arbeitsblatt für die Schüler ausgedruckt werden.
Der farbige Hintergrund ist hierbei unerwünscht, da er ja selten etwas zum Inhalt des Plakats beiträgt.

Vorgehen:

Mit der Open Source-Bildbearbeitungssoftware Gimp (Ver. 2.8) bedarf es dazu nur zwei Schritte:

1. Entsättigen

Unter Farben --> Entsättigen... einen der drei Punkte (zumeist passend: Helligkeit) auswählen.

2. Schwellwert festlegen.

Unter Farben --> Schwellwert zunächst die Automatik auswählen und ggf. mit dem schwarzen und weißen Pfeil nachregeln.

Freitag, 27. September 2013

F10 in Konsole an Midnight-Commander

Problem

In Ubuntu 12.04 (Unity-Desktop) besteht das Problem, dass die Taste F10 im Terminal nicht den darin gestarteten Midnight Commander (mc) beendet, sondern ein anderes Fenster öffnet. Auf die Dauer ist das etwas lästig.

Lösung

  1. Das Verzeichnis \~\.config\gtk-3.0 erstellen
  2. In diesem Verzeichnis folgende Datei anlegen: gtk.css
  3. Diese Datei muss folgenden Inhalt haben:
@binding-set NoKeyboardNavigation {
     unbind "<shift>F10"
}
* {
     gtk-key-bindings: NoKeyboardNavigation
}
Nach dem Schließen aller geöffneten Terminals sollte die Lösung funktionieren.

Samstag, 10. August 2013

Joomla-Frontend-Anmeldung nicht möglich

Problem

"Es gibt keinen Zugriff auf die privaten Seiten."

Nach einem zunächst erfolgreichen Joomla-Update (2.5) konnten sich die User der Gruppe "registered" nicht mehr am Frontend anmelden, es kam bei der Anmeldung obige Meldung. Als Superuser war eine Anmeldung möglich. Im Backend war für die User und die Usergruppe noch alles korrekt eingetragen (also v.a. unter Konfiguration - Berechtigungen - Registered - Seitenanmeldung auf "erlaubt").

Lösung:

  1. In die Datenbankverwaltung (phpmyadmin oder die Verwaltungsoberfläche des Hosters) gehen und dort die Tabelle jom_assets suchen
  2. Nach der Spalte parent_id sortieren
  3. Hier wird es wahrscheinlich mehrere Einträge mit parent_id=0 geben. Es darf aber nur der Eintrag root mit dieser parent_id existieren! Ändern Sie (nach einem Datenbank-Backup natürlich...!) alle übrigen Einträge (bis auf root) der parent_id=0 in 1 ab.
  4. Der Login am Frontend sollte für alle User wieder möglich sein.

Mittwoch, 13. Februar 2013

putty und Tunnel unter 64bit-Windows

Problem

Ich wollte unter Windows 8 (64 bit) einen putty-Tunnel aufbauen, um mit einem Java-basierten Programm (Intrexx-Portalmanager) auf eine Server-Applikation auf meinem Ubuntu-Server zuzugreifen. Unsere Firewall blockt die meisten Ports, sodass nur der putty-Tunnel in Frage kommt.
Putty hat erfolgreich eine Verbindung aufgebaut, nur das Programm zickte rum, brachte immer wieder Java-Fehlermeldungen. Da die putty-Einstellungen unter einem 32bit-Windows 7 problemlos funktionierten, musste das Problem an anderer Stelle liegen.

Lösung

Erfolg brachte der Download einer auf 64bit compilierten puty-Version (z.B. hier). Offenbar beißt sich das 64bit-JRE mit dem original 32bit-putty.

Sonntag, 25. November 2012

In VirtualBox Guest-Programm vom Host aus starten

Aufgabe

Ähnlich wie im alten WinXP-Mode von Windows 7 soll unter Windows 8 ein nur mit WinXP-kompatibles Programm (z.B. Acrobat 7.0) gestartet werden. Hierbei hilft VirtualBox.  
Allerdings soll nicht erst VirtualBox, dann die virtuelle Maschine und schließlich Acrobat gestartet werden, um am Ende wieder alles zu schließen, sondern all das soll eine Batch-Datei auf dem Desktop oder im Startmenü erledigen. Ein Klick auf die Datei und etwas warten, und schon startet das alte Acrobat, fast so, als wäre es ein Win8-Programm.

Voraussetzungen

  1. WinXP und Acrobat in VirtualBox installieren.
  2. Im Gastsystem (Name z.B. WinXP virtuell) einen User samt Passwort (nötig!) anlegen.
  3. Pfad zum Programm im Gastsystem merken.
  4. Gastsystem in den Seamless-Modus (Strg-L) versetzen.
  5. Gastsystem beenden, dabei Zustand des Gastsystems speichern!

Batch-Datei erstellen

Im Hostsystem (z.B. Win8) eine bat-Datei erstellen mit folgendem Inhalt:
"C:\Program Files\Oracle\VirtualBox\VBoxManage" -q startvm "WinXP virtuell"
"C:\Program Files\Oracle\VirtualBox\VBoxManage" guestcontrol "WinXP virtuell" execute --image "C:\Programme\Adobe\Acrobat 7.0\Acrobat\Acrobat.exe" --username user1 --password abc123 --wait-exit --wait-stdout
"C:\Program Files\Oracle\VirtualBox\VBoxManage" controlvm "WinXP virtuell" savestate
Erklärung:
  • Starten der virtuellen Maschine WinXP virtuell ohne Logo (-q).
  • Starten von Acrobat im Kontext des WinXP-Benutzers user1 mit dem Passwort abc123, VBoxManage wartet, bis Acrobat wieder geschlossen wird (--wait-stdout).
  • Schließen des Gastsystems, der Zustand wird wieder gespeichert.

Dienstag, 28. August 2012

Großes Profil in OpenOffice 3.4

Eigentlich schade, bisher waren die Auslagerungen von OpenOffice ins Benutzerprofil des Anwenders (unter Win7: ~\Appdata\Roaming\OpenOffice.Org, unter WinXP ~\Anwendungsdaten\OpenOffice.Org) recht gering, bei einem frisch installierten Oo zwischen 1-2 MB. Bei AOo 3.4.1 ist dieses Unterverzeichnis plötzlich bei meinem lang genutzten Profil 160 MB groß, bei einem neu angelegten Profil immernoch über 80MB. Für roaming Profiles im Netzwerk eher unpraktisch, ich bin da bemüht, die Userprofile möglichst klein zu halten, damit nicht so viele Daten beim Anmelden übers Netz müssen. Außerdem müsste ich dann die Quota der User hochsetzen…

Auch bei LibreOffice 3.6 ist das Profil 8MB groß, aber das ist immerhin um Faktor 10 kleiner als bei OpenOffice…

 

So nebenbei: Komisch, warum bei allen Versuchen der “Platz auf dem Datenträger” laut Windows im LibreOffice-Profil jeweils bei 20MB lag, woher jeweils diese große Differenz kommt, kann ich mir nicht ganz erklären…

Freitag, 20. Juli 2012

Ubuntu 12.04 per crontab mit Meldung herunterfahren

Problem

Ubuntu per Crontab herunterzufahren ist ja kein Problem, etwas schwieriger wird es, wenn man Warnungen auf dem Desktop des angemeldeten Users haben möchte.

Vorarbeiten

Unter 
/etc/xdg/autostart
die Datei
 postlogin-xhost-root.desktop
anlegen. Diese Datei wird bei jedem Login ausgeführt. Folgenden Inhalt einfügen:
#!/usr/bin/env 
xdg-open 
[Desktop Entry] 
Encoding=UTF-8 
Name=Postlogin-xhost-root 
Comment=Zugriffsrecht für root auf Display 
Exec=/usr/bin/xhost +local:root 
Terminal=false 
Type=Application 
OnlyShowIn=GNOME;XFCE;KDE;Unity; 
NoDisplay=true
Jetzt darf der User root auf das Display des Users zugreifen.
Nun die Datei
/etc/crontab
bearbeiten und folgende Zeile ganz unten einfügen:
00 18    * * *   root   env DISPLAY=:0 /usr/bin/herunterfahren
Damit wird das weiter unten beschriebene Skript um 18:00 Uhr ausgeführt. Die Datei
/usr/bin/herunterfahren
anlegen und sie ausführbar machen:
 sudo chmod +x herunterfahren
Es gibt nun 2 Wege, Weg A blendet für 6 Sekunden (Timeout entgegen der man-Pages leider nicht einstellbar) Warnmeldungen ein, Weg B lässt dem User die Möglichkeit, das Herunterfahren abzubrechen.

Weg A:

  In die Datei /usr/bin/herunterfahren folgendes einfügen:

#!/bin/bash
notify-send -u critical -i /usr/share/icons/Humanity/status/48/dialog-warning.svg "ACHTUNG!" "Der Rechner schaltet sich in 2 min aus! Speichern Sie Ihre Daten jetzt!" &
sleep 60
notify-send -u critical -i /usr/share/icons/Humanity/status/48/dialog-warning.svg "ACHTUNG!" "Der Rechner schaltet sich in 1 min aus! Speichern Sie Ihre Daten jetzt!" &
sleep 60
notify-send -u critical -i /usr/share/icons/Humanity/status/48/dialog-warning.svg "ACHTUNG!" "Der Rechner schaltet sich JETZT aus!" &
sleep 15
shutdown -h now
exit 0

 Weg B:

In die Datei /usr/bin/herunterfahren folgendes einfügen:
#!/bin/bash
USERCOUNT=$(who | wc -l) 

if [ $USERCOUNT = "0" ]; then 
shutdown -h now; else
zenity --question --timeout=30 --text="Der Rechner wird in 30 Sekunden abgeschaltet. Ist das OK?" --title="PC-Abschaltung"; STATUS=$?
if [ $STATUS = "1" ]; then
echo "";
else
zenity --info --timeout=120 --text "Der Rechner wird in 2 Minuten oder mit einem Klick auf OK heruntergefahren. Bitte speichern Sie JETZT Ihre Arbeit!"; shutdown -h now 

fi
fi

Quellen (überarbeitet und Fehler behoben!):

Montag, 16. Juli 2012

Ubuntu und Linuxmuster mit Moodle-LDAP-Auth

Problem:

Wie konfiguriere ich ein Moodle unter Ubuntu 12.04 so, dass es auf das LDAP einer Linux-Musterlösung zugreift und sich die Nutzer darüber authentifizieren können?


Lösung:

1. Moodle-Plugin Authentifizierung/LDAP-Server

Host URL: LDAPS://xxx.xxx.xxx.xxx
Version: 3
Codierung: UTF-8
Nein-Leer-Leer
Nutzertyp: posixAccount (rfc2307)
Kontexte: ou=accounts,dc=[vorne],dc=de
Ja-Nein
Nutzermerkmal: UID
Mitgliedsmerkmal: Member
Leer
ObjectClass: objectClass=posixAccount
Nein-Nein-reiner Text-Leer
no-10-leer-nein-leer
nein-leer
leer
nur intern zugänglich
nein-leer-nein-NTLM

2. IPCop-Firewall-Regel:

LDAPS-Port 636 auf die Adresse des Servers leiten.

3. ldap.conf auf dem Ubuntu-Server bearbeiten:

Zur Datei
/etc/ldap/ldap.conf
folgendes hinzufügen:
TLS_REQCERT never

Ergänzung:

Wenn man einige Benutzerfelder in Moodle aus dem LDAP der Musterlösung übernehmen will, bietet sich folgende an:

Moodle-Plugin Authentifizierung/LDAP-Server unter dem Punkt "Datenzuordnung":

Vorname: givenName 
Nachname: sn
Stadt/Ort: gidNumber
(bei letzterem wird eine Nummer eingefügt, die für Lehrer (10000) oder eine Klasse steht.)

Ubuntu 12.04-Anpassungen für Unterrichtsrechner

Ubuntu 12.04 eignet sich meiner Meinung nach auch mit dem Unity-Desktop gut für Unterrichtsrechner. Einige Anpassungen müssen aber dennoch gemacht werden.
Ich gehe hier von einem Ubuntu 12.04 (Precise Pangolin) aus, das bereits mit dem Linuxmuster-Client-Paket des Linux-Musterlösung-Schulservers (derzeit noch im Beta-Status, funktioniert bei mir aber gut) "geimpft" wurde und in der Folge bereits einige Grundeinstellungen erhalten hat.

Die Vorschläge habe ich größtenteils von der Seite 
http://www.linuxmuster.net/clients:linux_clients:merkzettel_linuxclient
übernommen, wobei die Anpassungen an 12.04 von mir zusammengesucht wurden.

Chat-/Mail-Icon in der Unity-Titelleiste

Radikal:
sudo apt-get remove indicator-messages

Vorsichtiger:
Die Datei 
/usr/lib/indicators3/7/libmessaging.so
umbenennen in .../libmessaging.so.bak

Ruhezustand aus dem Menü entfernen

(Quelle:  http://www.linuxmuster.net/clients:linux_clients:merkzettel_linuxclient#ruhemodi_aus_dem_menue_entfernen)

Die Datei 
/usr/share/polkit-1/actions/org.freedesktop.upower.policy
bearbeiten. Im Abschnitt suspend die Zeile
yes
suchen und das yes durch ein no ersetzen.
Das gleiche im Abschnitt hibernate durchführen. 

"Bildschirm sperren" entfernen

Hierbei hilft die Software "Ubuntu-Tweak", mit der man auch einige weiter Einstellungen vornehmen kann, z.B. die Knöpfe der Fenster-Kopfleiste von links wieder nach rechts bewegen...

Im "Werkzeug-Menü" oben rechts auf "Anwendungen sind aktuell", dann auf "Einstellungen", "Andere Software", "Hinzufügen" und dort eingeben:
ppa:tualatrix/ppa
Nach Bestätigung in ein Terminal-Fenster gehen und dort folgende beide Befehle ausführen:
sudo apt-get update
sudo apt-get install ubuntu-tweak
Jetzt kann man ubuntu-tweak starten und dort unter "Optimierungen", "Session Indicator" den Punkt "Bildschirm sperren deaktivieren" ankreuzen.

Mir noch nicht ganz klar, ob es auf alle User wirkt:
Um zu verhindern, dass nach einiger Zeit der User-Inaktivität der Bildschirm gesperrt wird, muss man folgenden Befehl (als Linuxadmin, nicht als sudo!) eingeben:
gsettings set org.gnome.desktop.screensaver lock-enabled false
(vgl. auch: http://askubuntu.com/questions/65900/how-can-i-change-default-settings-for-new-users)

Automatischen Updatecheck deaktivieren

Natürlich sind Updates wichtig, da die Nutzer aber sowieso keine Rechte zur Installation haben und das Image bei Synchronisierung von den Updates nichts mitbekommt, kann man die automatischen Updates auch abschalten.
Im "Werkzeug-Menü" oben rechts auf "Anwendungen sind aktuell", dann auf "Einstellungen", "Aktualisierungen",dort bei "Automatisch nach Aktualisierungen suchen" in der Liste "niemals" auswählen.

Menüleiste in LibreOffice nach Unity-Manier

Die Menüleiste in LibreOffice erscheint nicht, wie bei anderen Prorammen, z.B. Firefox unter Unity üblich, in der Menüleiste am obersten Bildschirmrand (wie bei MacOS), sondern immer oben im Programmfenster. So ist man es zwar von MS-Windows gewohnt, es ist in sich aber inkonsistent.
Wenn man es unter Ubuntu lieber immer gleich hat, und sich von den Microsoft-Vorgaben lösen kann, kann man das Problem durch folgenden Befehl lösen:
sudo apt-get install lo-menubar
[Update:]
Das Obige gilt nur für LibreOffice < 4.0. Unter aktuellen Versionen gibt es meines Wissens keinen Weg, die Menüleiste in das global menu zu verschieben. Der Versuch der Installation von lo-menubar führt zu einer Fehlermeldung wegen unlösbarer Abhängigkeiten. Ich bin deshalb des umgekehrten Weg gegangen, um die Bedienung konsistent zu halten:

Menüleiste nach Unity-Manier abschalten (auch in Firefox)

Will man die Menüleiste wie früher im Programmfenster und nicht in der Kopfleiste des Desktops (global menu), entsorgt folgender Befehl die entsprechenden Programmkomponenten:
sudo apt-get remove appmenu-gtk appmenu-gtk3 appmenu-qt firefox-globalmenu
Das allein hilft bei Firefox > 22  aber noch nicht weiter, hier ist in Firefox ein weiterer Schritt vonnöten:
  1. In die Adresszeile about:config eingeben.
  2. Nach unity suchen.
  3. Doppelklick auf den Eintrag (ui:use_unity_menubar), der Wert wechselt dann von true auf false
Dank für diese Lösung an: Henning Schmidt
[/Update]


Kleinhalten des Images

Nach der Installation und diversen Updates liegen einige Dateileichen herum (alte Kernels, veraltete Programmversionen usw.). Diese kann man entweder mit
sudo apt-get clean
entsorgen, oder von ubuntu-tweak ("Hausmeister") entfernen lassen.

Mittwoch, 28. Dezember 2011

Joomla 1.7 / eventlist 1.0.2, Deutsche Wochentage

Problem:
Seit dem Upgrade auf Joomla 1.7 und dem nötigen Update von eventlist auf die 1.0.2 final wurden die Wochentage auf Englisch angezeigt statt auf Deutsch.

Lösung:
In einem Editor die Datei /components/com_eventlist/views/categories/tmpl/default.php öffnen.

Eine Zeile vor der Zeile “defined( '_JEXEC' ) or die( 'Restricted access' );” einfügen und folgendes eintragen:


setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');

Die Datei speichern. Das Gleiche mit den weiteren default-php-Dateien der übrigen Unterverzeichnisse von “views” machen. Anschließend werden die Wochentage korrekt auf Deutsch angezeigt.

Donnerstag, 22. Dezember 2011

Intrexx 5 Prof. und Popups im Filewalker

Problem:

Beim Aufruf von Dateien im Filewalker öffnet sich neben dem Downloadmanager des Browsers auch ein leeres Browserfenster ohne Funktion. Nach erfolgtem Download muss man dieses erst wieder schließen.

Lösung:

Im Portalmanager auf den entsprechenden Filewalker gehen, im Reiter Expert (wenn nicht vorhanden, dann über Extras-Einstellungen-Applikationen aktivieren) ein Attribut über das grüne Plus hinzufügen, aus der Liste in der ersten Spalte der neuen Zeile den Punkt “open-popup” auswählen und in der zweiten Spalte den Wert “nein” eintragen.

Freitag, 25. November 2011

UPS mit Ubuntu 10.04

[Baustelle!]

Ziel:

UPS soll Server bei Stromausfall geordnet herunterfahren und außerdem Status-Infos abgeben. In meinem Fall eine HP UPS T1000 G3.

Mittel:

Die zu installierende und konfigurierende Software ist NUT (Network UPS Tools).

Vorgehen:

Meine Basisquelle ist dieser Artikel auf ubuntuusers, der aber in ein paar wenigen Punkten zu ergänzen ist:

1. Paketquelle hinzufügen:

Einige neuere USVs, so meine HP, werden erst ab NUT 2.6.0 unterstützt, in den Standard-Paketquellen von Ubuntu liegt aber nur eine ältere Version vor. Eine neuere für amd64 gibt es bereits, also installieren wir die Paketquelle und aktualisieren das Verzeichnis:

sudo add-apt-repository ppa:rhardy/webconsrp


sudo apt-get update



2. nut installieren:




sudo apt-get install nut




3. Server in den Autostart aufnehmen



4. Treiber konfigurieren



Achtung: Eine Liste der Treiber findet man hier. Meine HP benötigt den Treiber usbhid-ups, dieser funktioniert mit:




port = auto




5. Benutzer einrichten



6. Statusdienst einrichten



7. upssched verwenden



8. Folgende Datei anlegen und ausführbar machen:




/etc/nut/upssched/upsscript



9. Datei mit diesem Inhalt füllen.



10. Rechte anpassen.



11. Datei /etc/default/nut anlegen und diesen Inhalt einfügen.



Nach einem Neustart sollte die USV ansprechbar sein.

Montag, 14. November 2011

FreeNX unter Ubuntu 10.04 LTS

Wozu?

FreeNX ist ein Tool zum Fernzugriff auf den Linux-Desktop, also z.B. Gnome oder KDE. Der Server wird unter Ubuntu installiert, den Client gibt es für Windows, MacOS, Linux und Solaris hier zum Download.

Wie?

Es gibt eine Vielzahl von Beschreibungen für die Installation, keine hat jedoch exakt gepasst für meine Installation:

  • Ubuntu 10.04 Server LTS mit Gnome
  • ssh-Setup mit Key-Authentifizierung (kein putty-Login mit Passwort möglich, nur mit Public/Private-Key)

Irgendwelche Befehle waren immer falsch oder es fehlte etwas (auch in der Kurzbeschreibung der c’t). Aus verschiedenen Quellen habe ich jetzt folgende lauffähige Beschreibung zusammengestellt.

Ablauf am Server

sudo add-apt-repository ppa:freenx-team/ppa

(Port 11371 muss offen sein, um auf den Keyserver zugreifen zu können!)

sudo apt-get update

sudo apt-get install freenx-server

wget https://bugs.launchpad.net/freenx-server/+bug/576359/+attachment/1378450/+files/nxsetup.tar.gz

tar -xvf nxsetup.tar.gz

sudo cp nxsetup /usr/lib/nx/nxsetup

Die erste Frage mit “y” beantworten.

In der Datei /etc/nxserver/node.conf folgende Zeilen auskommentieren und auf =1 setzen:

ENABLE_PASSDB_AUTHENTICATION="1"

ENABLE_SU_AUTHENTICATION="1"

Anschließend zu Sicherheit:

sudo restart freenx-server

Im Verzeichnis ~/.ssh/ die Datei authorized_keys nach authorized_keys2 kopieren.

Nun muss ein User samt Passwort für den nx-Server angelegt werden (kann identisch zum Ubuntu-User sein), mit dem man sich später auch am NX-Client anmeldet. Angenommen der User heißt “aaa”:

sudo nxserver --adduser aaa

sudo nxserver --passwd aaa

Alle Vorbereitungen sind getroffen, jetzt muss man noch aus dem Verzeichnis /var/lib/nxserver/home/.ssh/ den Inhalt der Datei client.id_dsa.key holen.

Ablauf am Client

Nach der Installation des NX-Clients rufen Sie den Connection Wizard auf, geben die erforderlichen Daten an, rufen am Ende die erweiterte Konfiguration auf, gehen dort auf die Schaltfläche “Key” und kopieren in dieses Feld den client.id_dsa.key-Inhalt vom Server. Nun sollte sich eine Verbindung zum Server aufbauen lassen und der Desktop angezeigt werden.

 

Siehe auch:

https://help.ubuntu.com/community/FreeNX

http://wiki.ubuntuusers.de/NX

c’t 2011, Heft 23, S. 172f.

Dienstag, 1. Februar 2011

Adobe Reader X – besser nicht?

Eigentlich sollte der Adobe Reader in Version 10 doch alles besser machen, eine Sandbox sollte verhindern, dass aktive Inhalte der pdf-Dokumente Schaden am PC anrichten können, sprich die Sicherheit des Programms sollte erhöht werden.

Außerdem springen jetzt beim Browser-Plugin beim Versuch, ein pdf zu speichern (Strg-S) oder zu drucken (Strg-P), die Adobe-Routinen ein und nicht die – an dieser Stelle nutzlosen – Browser-Routinen.

Das Funktioniert wohl auch. Allerdings gibt es mindestens zwei – meiner Ansicht nach schwerwiegende - Nachteile der aktuellen Version gegenüber der 9er-Version:

Suchfunktion von Windows 7 durchsucht pdf-Dateien nicht mehr

Wie auch die Zeitschrift c’t in einer “Hotline-Meldung” schreibt, funktioniert die Volltext-Indexierung in pdf-Dateien nach einem Upgrade von Adobe-Reader 9 auf Adobe Reader X nicht mehr! Das entsprechende IFilter-Modul wird von Adobe nicht mehr mitgeliefert! Was auch immer die Firma bei dieser Entscheidung geritten hat, denn die übergreifende einfache Suche in Windows 7 ist eines der Highlights. Und ohne Ergebnisse in pdfs ist sie nur noch die Hälfte wert.

Im c’t-Artikel steht glücklicherweise, wie man das mit Modulen anderer Hersteller nachrüstet.

pdf-Dateien auf Netzwerkfreigaben per nfs werden nicht geöffnet

Auch zu diesem Fehler sagt Adobe wohl: It’s not a bug, it’s a feature! (s. Adobe-Seite)

Wenn man eine auf einer Netzwerkfreigabe (nfs) liegende pdf-Datei per Doppelklick öffnen will, bekommt man die Fehlermeldung “Zugriff verweigert”. Kopiert man sich die Datei jedoch auf den Desktop und öffnet sie dann, funktioniert alles wie gewünscht.

Um in solch einer Konfiguration (bei uns in der Schule der Normalfall) arbeiten zu können, muss man also im Adobe Reader X die Sandbox und damit die erhöhte Sicherheit abschalten:

Bearbeiten – Voreinstellungen – Allgemein – Geschützten Modus beim Start aktivieren – Häkchen entfernen.

Fazit

Wenn man für die Suchfunktion einen Filter eines anderen Herstellers braucht und für den Zugriff auf bestimmte Netzwerkfreigaben auch noch den geschützten Modus abschalten muss, warum sollte man dann nicht gleich auf sichere, schnelle Alternativen inkl. IFilter wie Foxit umsteigen (das IFilter-Modul von Foxit kostet für den Desktop-Gebrauch nichts, man muss sich allerdings registrieren)?

Montag, 21. Juni 2010

Intrexx5 und VHosts mit Tomcat

Ein sehr spezieller Artikel für Intrexx5-Anwender:

Zielsetzung:

Ein Intrexx-Server hostet 2 Portale (Portal1 und Portal2). Es wurden zwei Domains (www.intrexxportal1.de; www.intrexxportal2.de – von mir frei erfundene Adressen…) geschaltet, die beide auf die IP des Servers verweisen. Ein Aufruf der Portale ist über http://<IP>/Portal1 und http://<IP>/Portal2 möglich.

Jetzt soll aber die Domain http://www.intrexxportal1.de direkt auf das Portal1 führen und nicht nur auf die Tomcat-Startseite. Das Gleiche bei intrexxportal2.

Vorgehen:

  1. Die Datei /opt/intrexx/tomcat/conf/server.xml bearbeiten
  2. In der Zeile
    <Host appBase=”webapps” autoDeploy=”true” name=”localhost”
    das localhost durch www.intrexxportal1.de ersetzen, den Rest unverändert lassen.
  3. Die gerade abgeänderte Zeile samt der darauffolgenden (also alles zwischen den spitzen Klammern) kopieren und ganz unten in der Datei zwischen </Host> und </Engine> einfügen.
  4. In den kopierten Zeilen intrexxportal1 durch intrexxportal2 ersetzen.
  5. Vor </Engine> ein </Host> ergänzen.
  6. Die Datei speichern und schließen.
  7. Das komplette Verzeichnis /opt/intrexx/tomcat/conf/Catalina/localhost nach /opt/intrexx/tomcat/conf/Catalina/www.intrexxportal1.de sowie nach /opt/intrexx/tomcat/conf/Catalina/www.intrexxportal2.de kopieren.
  8. Im Verzeichnis www.intrexxportal1.de die Datei Portal1.xml nach ROOT.xml kopieren.
  9. Im Verzeichnis www.intrexxportal2.de die Datei Portal2.xml nach ROOT.xml kopieren.
  10. cd /opt/intrexx/bin/linux
  11. sudo ./console.sh –a stop
  12. sudo ./console.sh –a start
  13. sudo ./console.sh –s status –> Wenn hier alle Prozesse gestartet sind – insbesondere der Tomcat, war die Operation erfolgreich!

Donnerstag, 6. Mai 2010

Apache und Tomcat mit mod_jk unter Ubuntu 10.04

Zielsetzung:

Es war gar nicht so einfach, eine funktionierende Anleitung zu finden, wie man Apache2 und Tomcat6 mit libapache2-mod-jk verbindet. Unter http://www.docshare.com/doc/197611/Installing-Tomcat6-on-Ubuntu-with-Jk-Connecto habe ich eine gefunden, die ich hier im Wesentlichen wiedergebe, die Pfade (u.a. auf das mit Ubuntu-Server standardmäßig installierte OpenJDK) habe ich angepasst.
Meine Beschreibung setzt Gnome voraus, wenn keine grafische Oberfläche (apt-get install ubuntu-desktop) installiert wurde, kann man die Dateien natürlich statt mit gedit auch mit vi oder dem mc bearbeiten.

Vorgehen:

  1. Starte gnome-console
  2. sudo apt-get install tomcat6
  3. sudo apt-get install libapache2-mod-jk
    (Ubuntu lädt bei der Installation den Connector automatisch als Apache2-Modul)
  4. sudo gedit /etc/libapache2-mod-jk/workers.properties
  5. Bearbeite folgende Zeile:
    workers.tomcat_home = /usr/share/tomcat6
  6. Bearbeite folgende Zeile:
    workers.java_home = /usr/lib/jvm/java-6-openjdk
  7. Speichern und gedit beenden
  8. sudo gedit /etc/apache2/sites-enabled/000-default
  9. Füge zwischen dem letzten </Directory> und dem abschließenden </VirtualHost> folgende Zeile ein:
    JkMount /* ajp13_worker
  10. Speichern und gedit beenden
  11. sudo gedit /etc/apache2/mods-available/jk.load
  12. Füge am Ende folgende Zeilen hinzu:
    JkWorkersFile /etc/libapache2-mod-jk/workers.properties
    JkLogFile /var/log/apache2/mod_jk.log
    JkLogLevel error
  13. Speichern und gedit beenden
  14. sudo gedit /etc/tomcat6/server.xml
  15. In Zeile 93-95 steht folgendes:
    <!--
    <Connector port =”8009” protocol=”AJP/1.3” redirectPort= “8443” />
    -->
    Die Zeile 94 auskommentieren (also das <!-- und das --> löschen)
  16. Speichern und gedit beenden
  17. sudo /etc/init.d/apache2 restart
  18. sudo /etc/init.d/tomcat6 restart
Fertig! Fortan können .jsp-Seiten statt unter http://localhost:8080 direkt unter http://localhost aufgerufen werden.