Bricked mein Ubuntu Server kann nicht mehr starten oder sich einloggen

0

Ich habe einen virtuellen Host (KVM) mit Ubuntu Server 14.04.3 LTS installiert. Jetzt verbringe ich die letzte Woche damit, Apache, Module, Owncloud und andere Dinge einzurichten.

Bis ich der Empfehlung von Owncloud https://doc.owncloud.org/server/8.0/admin_manual/installation/installation_wizard.html#setting-strong-directory-permissions gefolgt bin, hat alles wunderbar funktioniert

Sie schrieben, dass der einfachste Weg wäre, ein Skript mit dem folgenden Inhalt zu erstellen

#!/bin/bash
ocpath='/var/www/owncloud'
htuser='www-data'
htgroup='www-data'
rootuser='root' # On QNAP this is admin

find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750

chown -R ${rootuser}:${htgroup} ${ocpath}/
chown -R ${htuser}:${htgroup} ${ocpath}/apps/
chown -R ${htuser}:${htgroup} ${ocpath}/config/
chown -R ${htuser}:${htgroup} ${ocpath}/data/
chown -R ${htuser}:${htgroup} ${ocpath}/themes/

chown ${rootuser}:${htgroup} ${ocpath}/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess

chmod 0644 ${ocpath}/.htaccess
chmod 0644 ${ocpath}/data/.htaccess

Naja, ich habe keine kritischen Inhalte gesehen, nur normale chmods für root und www-Daten. Also habe ich eine script.sh mit dem Inhalt oben in meinem www-Ordner erstellt und mit sudo ./script.sh ausgeführt

Das hat also eine Weile gedauert und dann sind fehlende Zugriffsrechte aufgetreten, während das Skript noch lief (was sehr lustig war, da sudo mit dem richtigen Passwort gut zurechtkam).

Nachdem das Skript seine Aufgaben erledigt hatte, versuchte ich, per sudo su in den Root-Modus zu wechseln, und dann sah ich, was passiert ist: Mein Ubuntu-Hauptbenutzer verlor das Recht, sudo su auszuführen, und es war sogar kein sudo mehr möglich.

Nun danach habe ich versucht, den virtuellen Host neu zu starten, um die Root-Shell im Wiederherstellungsmodus zu starten, aber zwischen dem Booten mit einer Kernel-Panik kommt es zum Stillstand.

Irgendeine Idee, was passiert ist? Konnte dieses Skript einem Symlink zu meinem Stammverzeichnis folgen? Sehen Sie eine Chance, meinen Server zu reparieren? Ansonsten verliere ich eine Woche Arbeit :(

Mkay
quelle
Alles, was in diesem Skript gemacht wird, scheint an den Pfad $ ocpath gebunden zu sein - sudoer und Systemdateien befinden sich in / etc. Ich sehe nicht, wie dieses Skript diese Datei aktualisieren könnte. Möglicherweise sind Ihre Daten beschädigt? Probiere eine Ubuntu Live CD aus und überprüfe mit fsck?
bshea
auf einen blick sieht das script so aus, als wäre es richtig konfiguriert. findon debian gibt symlinks nicht zurück oder folgt ihnen nicht, -Les sei denn, es wird verwendet.
Frank Thomas
1
Dies ist nicht hilfreich, aber 1) Verwenden Sie zuerst einen einfachen Ausdruck, bevor Sie einen solchen Befehl ausführen. ZB find ${ocpath}/ -type f -ls2) Ich bin nicht sicher, warum sie verwenden find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640. Warum nicht einfach find ${ocpath}/ -type f -exec hmod 0640 +(kürzer und effizienter). 3) Überprüfen Sie Ocpath. ocpath = '/ var / www / owncloud'. Stellen Sie sicher, dass kein versehentlicher Platz vorhanden ist. ZB ocpath = '/ var / www / owncloud' oder ähnliches.
Hennes
Außerdem sollten Sie in Shell-Skripten Anführungszeichen für Variablen verwenden. Sie können ein großes Durcheinander anrichten, wenn Sie beispielsweise (wie von @Hennes gesagt) ein zusätzliches Leerzeichen in Variablendefinitionen einfügen. Zum Beispiel:chown -R ${rootuser}:${htgroup} "${ocpath}/"
emi
2
Wenn Sie, wie von @bshea vorgeschlagen, den Root-Zugriff auf ein Linux verloren haben, starten Sie es mit einem Live-System (auf einer CD, auf einem USB-Stick, über PXEBoot usw.). Befindet sich dieses System in einem KVM, haben Sie wahrscheinlich Zugriff auf die virtuelle Festplatte. Wenn ja, können Sie es einhängen und versuchen, es zu reparieren. Wenn Sie Dinge installieren müssen, möchten Sie wahrscheinlich verwenden chroot.
Emi