Schlagwort-Archive: Linux

Nach Synology DSM-Update ist root-Zugriff nicht mehr möglich

Vor einiger Zeit habe ich auf meiner Synology die Standard ash-Shell (Almquist-Shell) durch die gewohnte Bash (Bourne-again-shell) ersetzt. Da ich sowieso das eine oder andere Paket über den IPKG-Paketmanager installiert habe, war dies relativ schnell mit Hilfe dieses Blogposts erledigt. Kürzlich habe ich dann aber bemerkt, dass mit einem Update des Synology DSM (aktuell DSM 5.2.x) die via IPKG installieren Pakte nicht mehr funktionieren. Da ich direkt in der passwd-Datei die Shell für den root-User geändert hatte, war ein Login über die Konsole nicht mehr möglich. Stattdessen gab nur folgende Fehlermeldung:

ssh root@synology
/opt/bin/bash: No such file or directory

Erstmal ein sehr ernüchterndes Gefühl sich den root-Zugriff zerstört zu haben. Nach einiger Recherche im Synology Community Forum bin ich auf den Hinweis gestoßen, die passwd-Datei mit Hilfe einer zuvor installierten Web-Shell zu korrigieren. Außerdem sollte man niemals mehr direkt in der passwd-Datei die Default-Shell des root-Users anpassen!

Installation der WebShell

Alle Infos zur Installation einer WebShell stecken wohl in den tiefen dieses unübersichtlichen Forenthreads. (Grundsätzlich verstehe ich nicht, warum man diese Informationen nicht übersichtlich in einer Wiki-Seite pflegt und den Thread nur zum Austausch  aktueller Probleme & Erkenntnisse nutzt.)
Hier daher nochmals Schritt für Schritt wie es bei mir funktioniert hat:

  1. Zuerst muss in den Einstellungen des Paket-Zentrums die Installation von Paketen von jedem Herausgeber aktiviert werden. (Dies kann im Anschluss wieder deaktiviert werden)
    Synology-Pakete
  2. Nun kann dieses Paket (aktuell „Init_3rdparty_1.7-003.spk“) heruntergeladen und über das Paket-Zentrum manuell installiert werden.
    Synology_Manuelle_Installation
  3. Ich habe dann ebenfalls über die Weboberfläche die Synology neu gestartet.
  4. Nach einigem Suchen habe ich dann in Beitrag #3 des Threads das Paket mit der WebShell entdeckt  (WebShell.spk) und dies auf gleichem Wege installiert. Die WebShell findet man dann über das Hauptmenü (ohne Icon).
    WebShell_aufrufen
  5. Nach dem Start der WebShell sollte man in das Verzeichnis /etc wechseln, da dort die veränderte passwd-Datei liegt. In meinem Fall konnte ich einfach eine Sicherung der alten Orginaldatei mit folgendem Befehl wiederherstellen:
    mv passwd passwd.bash && mv passwd.org passwd

    Damit wird die aktuelle passwd unter dem Namen passwd.bash gespeichert und dann die Sicherung passwd.org wieder in passwd umbenannt. Wenn keine Sicherung existiert, kann man mit dem Stream EDitor (SED) die Datei ändern:

    sed -i 's#/opt/bin/bash#/bin/ash#g' passwd

    (Man sollte natürlich wissen was man tut… ich übernehme keine Verantwortung)

  6. Damit war der SSH-Login nun wieder möglich, natürlich wieder in der leidigen ash-Shell ;-). Ich habe nun nochmals in Ruhe die passwd-Dateien angeschaut, und sichergestellt, dass keine angelegten Benutzer fehlen, da meine Sicherung ja schon etwas älter war…
  7. Über das Paket-Zentrum kann nun natürlich auch wieder die „WebShell“ und das „Init 3rdparty“ Paket deinstalliert werden und die Vertrauensebene in den Einstellungen zurückgesetzt werden.

Erneutes aktivieren von IPKG

Die Bash und IPKG wollte ich natürlich trotzdem zurück. (Ich hatte IPKG mit der Zusammenfassung in Esche’s IT-Blog installiert). Nach etwas suchen und „rumprobieren“ waren vermutlich nur folgende Schritte notwendig:

  1. Erneutes setzen des Symlinks für /opt:
    ln -s /volume1/@optware /opt
  2. Erneutes ergänzen der PATH-Umgebungsvariable in /root/.profile um folgende Zeile:
    PATH=/opt/bin:/opt/sbin:$PATH

    Das ganze sieht dann am Ende so aus:

    PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
    PATH=/opt/bin:/opt/sbin:$PATH
    export PATH

Bash erst nach dem Login via .profile Starten

In diesem Artikel habe ich den Hinweis entdeckt, die Bash doch einfach über die .profile-Datei des root-Users zu starten – sofern die Bash verfügbar ist. Damit sollte das Problem nicht mehr auftauchen. Dazu folgenden Eintrag in /root/.profile ergänzen:

if [ -x /opt/bin/bash ]; then
 exec /opt/bin/bash
fi

Vielleicht hilft diese Beitrag euch wenn ihr das selbe Problem habt, ansonsten dient er mir als Doku für die Zukunft ;-).

WordPress Medien bearbeiten – Ubuntu php5-gd Update

Schon seit einiger Zeit ärgert mich, dass einige Funktionen zum Bearbeiten von Grafiken in WordPress bei mir nicht möglich sind. Die jeweiligen Buttons, z.B. zum Drehen der Grafiken, sind inaktiv. Grund dafür ist die alte Version von php5-gd auf dem Ubuntu Server 8.04. Mit folgenden Schritten bekommt man schnell eine neuere Version eingespielt. Anwendung natürlich wie immer auf eigenes Risiko:
1. Löschen der Aktuellen php5-gd Installation:

sudo apt-get --purge remove php5-gd

2. Folgende Paketquelle muss dann am Ende der Datei /etc/apt/sources.list hinzugefügt werden:

deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all

3. Aktualisieren der Paketquellen:

apt-get update

4. Erneute Installation von php5-gd. Während der Installation gibt es zwei Abfragen die jeweils mit „Ja“ akzeptiert werden müssen. Außerdem ist es ratsam ein Backup der php.ini-Datei anzulegen, falls diese verändert wurde (/etc/php5/apache2/php.ini). Sie wird während der Installation überschrieben:

apt-get install php5-gd

Beim überschreiben der php.ini-Datei sollte die neue Version verwendet werden (MAINTAINER’S VERSION). Die eigenen Änderungen ggfs. Nach der Installation wieder einbauen.
5. Zum Abschluss muss noch der Apache neu gestartet werden:

/etc/init.d/apache2 restart

Damit sollten die Editierfunktionen für Grafiken verfügbar sein. Grafiken, welche im lokalen Viewer automatisch gedreht angezeigt werden, können nun einfach online korrigiert werden. Weitere Details zum Bearbeiten von Grafiken mit WordPress gibt es in einem ausführlichen Artikel bei Akademie.

Linux ein Nischenthema?

Linux und ich, das Weblog von Christoph Langner ist eines der Blogs, das recht früh in meinen Google Reader gerutscht ist, nachdem ich mich immer mehr mit Linux und Ubuntu beschäftigt habe. Christoph hat kürzlich den 1. Millionsten Besucher auf seinem Blog gehabt und passend dazu eine Verlosung von passenden Produkten für Linux-Fans eingestellt. Ich gratuliere! Linux ein Nischenthema? Wohl kaum mehr, wie man merkt. Weitere gute Blogs zu Linux und Ubuntu dürfte es mE allerdings noch geben. Wer schnell ist, kann noch bis zum 27.05.2010 per Kommentar und/oder Pingback teilnehmen und auf einen Gewinn hoffen.

iPhone unter Ubuntu ohne iTunes synchronisieren

Das übertragen von Musik auf das iPhone ist ohne iTunes von Apple eigentlich nicht vorgesehen. Unter OS-X kommt die Frage nach Alternativen zu iTunes nicht auf, unter Windows kann man es (notgedrungen?) installieren, für Linux gibt es iTunes nicht. Die einzige Möglichkeit bisher (jedenfalls seit unschönen Änderungen von iPhone OS Version 3) war, iTunes z.B. über eine virtuelle Windows Installation zu verwenden. Bisher.
Jetzt kann man das iPhone über GVFS als virtuelles Dateisystem einhängen und über die üblichen Tools wie Rhythmbox, Banshee etc. das iPhone / den iPod touch befüllen. Ein Jailbreak des iPhone wird nicht benötigt! iTunes muss ich dann vermutlich nur noch für die Software Updates des iPhone verwenden. Folgende Schritte funktionieren unter Ubuntu Karmic 9.10 mit meinem aktuellen iPhone 3GS 3.1.2.
Zuerst muss die PPA-Quelle von Paul McEnery hinzugefügt und dann einige Pakete installiert werden:

$ sudo add-apt-repository ppa:pmcenery/ppa
$ sudo apt-get update && sudo apt-get dist-upgrade
$ sudo apt-get install gvfs gvfs-backends gvfs-bin gvfs-fuse libgvfscommon0 ifuse libgpod-dev libgpod-common libiphone-utils libiphone0 python-iphone libplist++1 libplist-utils python-plist libusb-1.0-0 libusb-1.0-0-dev libusbmuxd1 usbmuxd

Zum Abschluß noch den eigenen Benutzer zur Gruppe fuse hinzufügen und in der Datei /etc/fuse.conf die Option user_allow_other aktivieren (das # am Anfang der Zeile löschen).

$ sudo adduser $USER fuse
$ sudo gedit /etc/fuse.conf

Nach einem Reboot erkennt die Rhythmbox automatisch das iPhone via USB und man kann einfach per drag and drop Musik laden. Auch die Albumcover werden übertragen.
Hier noch ein paar Screenshots:

(via FERNmanns Blog . thnx to Paul McEnery)