Mein Ubuntu-Server kann nicht mehr gestartet oder eingeloggt werden

459
Mkay

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 anderes Zeug einzurichten.

Alles funktionierte jedoch gut, bis ich der Empfehlung von Owncloud https://doc.owncloud.org/server/8.0/admin_manual/installation/installation_wizard.html#setting-strong-directory-permissions folgte

Sie schrieben, dass der einfachste Weg wäre, ihr 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 $/ -type f -print0 | xargs -0 chmod 0640 find $/ -type d -print0 | xargs -0 chmod 0750  chown -R $:$ $/ chown -R $:$ $/apps/ chown -R $:$ $/config/ chown -R $:$ $/data/ chown -R $:$ $/themes/  chown $:$ $/.htaccess chown $:$ $/data/.htaccess  chmod 0644 $/.htaccess chmod 0644 $/data/.htaccess 

Nun, ich habe keine kritischen Inhalte gesehen, nur reguläre chmods zu root und www-data. Also habe ich ein script.sh mit dem Inhalt oben in meinem www-Ordner erstellt und über sudo ./script.sh ausgeführt

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

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

Nach dem Versuch habe ich versucht, den virtuellen Host neu zu starten, um die Root-Shell im Wiederherstellungsmodus zu starten. Zwischen dem Booten mit einer Kernel-Panik wird jedoch angehalten.

Irgendeine Idee, was ist passiert? Hat dieses Skript möglicherweise einen Symlink zu meinem Wurzelverzeichnis? Sehen Sie eine Chance, meinen Server zu reparieren. Ansonsten verliere ich eine Woche Arbeit :(

0
Alles, was in diesem Skript gemacht wird, scheint an den Pfad $ ocpath gebunden zu sein - Sudoer und Systemdateien befinden sich in / etc. Ich kann nicht sehen, wie dieses Skript die Datei aktualisieren könnte. Sie könnten Daten beschädigt haben? Versuchen Sie eine Ubuntu-Live-CD und prüfen Sie mit fsck? bshea vor 8 Jahren 0
Auf einen Blick scheint das Skript korrekt konfiguriert zu sein. `find` auf debian gibt keine symbolischen Links zurück oder folgt diesen, sofern nicht` -L` verwendet wird. Frank Thomas vor 8 Jahren 0
Nicht sehr hilfreich bei der Behebung dieses Problems, aber 1) Verwenden Sie zunächst einen einfachen Ausdruck, bevor Sie einen solchen Befehl ausführen. ZB `find $ / -type f -ls` 2) Ich bin nicht sicher, warum sie` find $ / -type f -print0 | verwenden xargs -0 chmod 0640`. Warum nicht einfach $ / -type f -exec hmod 0640 + `(kürzer und effizienter) finden. 3) Überprüfen Sie Ocpath. ocpath = '/ var / www / owncloud'. Stellen Sie sicher, dass kein versehentlicher Platz vorhanden ist. ZB ocpath = '/ var / www / owncloud' oder ähnlich. Hennes vor 8 Jahren 1
Sie sollten auch Anführungszeichen für Variablen in Shellskripten verwenden. Sie können ein großes Chaos anstellen, wenn Sie zum Beispiel (wie von @Hennes gesagt) den Variablendefinitionen zusätzlichen Platz einräumen. Zum Beispiel: `chown -R $ : $ " $ / "` emi vor 8 Jahren 0
Wie von @bshea vorgeschlagen, sollten Sie den Root-Zugriff auf ein Linux-System mit einem Live-System (auf einer CD, einem USB-Gerät, über PXEBoot usw.) starten, wenn Sie Ihren Root-Zugriff verloren haben. Wenn sich dieses System in einem KVM befindet, haben Sie wahrscheinlich Zugriff auf die virtuelle Festplatte. Wenn ja, können Sie es montieren und versuchen, es zu reparieren. Wenn Sie Dinge installieren müssen, möchten Sie wahrscheinlich `chroot 'verwenden. emi vor 8 Jahren 2
stimmen mit allen oben überein - chown sollte NICHT * irgendeine Art * von Symlinks in Ihrem Skript durchlaufen haben. Nur eine andere Erklärung ist entweder, dass Sie / root versehentlich per @Hennes / emi ^ durchlaufen haben oder dass Daten beschädigt wurden. In beiden Fällen benötigen Sie entweder https://help.ubuntu.com/community/LiveCdRecovery oder möglicherweise eine vollständige * Neuinstallation * https://help.ubuntu.com/community/UbuntuReinstallation (Sie haben nun die Möglichkeit, die Installation neu zu installieren sowie ein Upgrade durchzuführen Images) verwenden Sie einfach die Festplatte, auf der Sie ursprünglich installiert haben. Viele Infos gibt es bereits zu diesen Themen. bshea vor 8 Jahren 0

0 Antworten auf die Frage