Irgendwie wurde der Ordner / var / www / html in eine Binärdatei konvertiert? Wie konvertiere ich es zurück?

518
user103292

Ich habe versucht, einige Dateien aus dem Home-Verzeichnis in den Ordner / var / www / html zu übertragen. Dies war aufgrund von Berechtigungseinstellungen nicht möglich, da das System sagte, dass ich nicht der Besitzer des Ordners bin. Nachdem ich online nach einer Lösung gesucht hatte, versuchte ich folgende Befehle:

sudo chmod 766 -R /var/www/html sudo chmod 766 -R /var/www/ sudo chmod 766 -R /var sudo chmod 766 -R /var/ sudo chown pi /var/www/html 

Die Ausgabe von ls -l / var / www / html und der Datei / var / www / html wird der Berechtigung verweigert.

Später sehe ich, dass alle Ordner in / var / in Binärdateien konvertiert wurden. Ich habe das System neu gestartet. Dann konnte ich sie aber nur bis / var / www wiederherstellen. Der Ordner / var / www / html war immer noch eine Binärdatei. Wie konvertiere ich es zurück in einen Ordner? Ich benutze Ubuntu 16.04

0
Verwenden Sie Ihre Sicherung, um die gesamte Verzeichnisstruktur wiederherzustellen. Ipor Sircer vor 6 Jahren 2
@IporSircer Dann? user103292 vor 6 Jahren 0
Weder "chmod" noch "chown" konvertieren einen "Ordner" (Verzeichnis) in eine Binärdatei. Was auch immer passiert ist, muss etwas anderes sein. Und wie man es zurückdrehen kann, hängt davon ab, was passiert ist. Können Sie Ihre Frage mit der Ausgabe von "ls -l / var / www / html" und "file / var / www / html" bearbeiten? dirkt vor 6 Jahren 1
@dirkt gemacht. Ich bekomme die Erlaubnis verweigert. Ich konnte kein Bild posten, da ich nicht genügend Reputationspunkte habe. Die Ausgabe ist "ls: kann nicht auf '/ var / www / html' zugreifen: Berechtigung verweigert" bzw. "/ var / www / html: kann` / var / www / html '(Berechtigung verweigert) nicht öffnen ". user103292 vor 6 Jahren 0
Wenn Sie "Erlaubnis verweigert" bekommen, wie haben Sie herausgefunden, dass es sich um eine Binärdatei handelt? Wiederholen Sie (1) als root und (2) für jedes übergeordnete Verzeichnis (verkürzen Sie den Pfad), bis Sie ein Ergebnis erhalten. Versuchen Sie auch `ls -ld / var / www / html` usw., um die Berechtigungen für den Fall zu erhalten, dass es ein Verzeichnis ist. dirkt vor 6 Jahren 0
@dirkt Es hatte ursprünglich ein Ordnersymbol. Später wurde es zu einem Symbol mit einem Textdateisymbol und 1 und 0 darauf geändert. Ich habe die Eigenschaften geprüft und es heißt "Binär (Anwendung / Octet-Stream)". user103292 vor 6 Jahren 0
@dirkt Ausgabe von "ls -ld / var / www / html" ist "ls: kann nicht auf" / var / www / html "zugreifen: Berechtigung verweigert". user103292 vor 6 Jahren 0
@dirkt oops ich habe es nochmal als root versucht. Ausgabe von "ls -l / var / www / html", "file / var / www / html" und "ls -ld / var / www / html" ist `-rwxrw-rw- 1 root root 11321 Sep 25 11: 49 index.html`, `/ var / www / html: directory` 'und` drwxrw-rw-2 root root 4096 Sep 25 11:49 / var / www / html`. user103292 vor 6 Jahren 0

1 Antwort auf die Frage

1
dirkt

Da hast du für ls -ld /var/www/htmldie Ausgabe bekommen

drwxrw-rw- 2 root root 4096 Sep 25 11:49 /var/www/html 

Das heißt, Sie haben ein Verzeichnis ( d), das von jedem ( rw) gelesen und beschrieben werden kann, aber nur xvon root durchsuchbar ist . Es ist also keine binäre Datei. Ich weiß nicht, welches Programm Sie verwendet haben, um Ordnersymbole und -eigenschaften anzuzeigen, aber was auch immer es ist, es ist falsch.

Dies ist darauf zurückzuführen, dass Sie die Berechtigungen für dieses Verzeichnis und alle seine übergeordneten Verzeichnisse auf 766(für das oktal rwxrw-rw-) festgelegt haben. Zumindest im Fall /varist dies völlig falsch, da dadurch allen Nicht-Wurzel-Teilen des Systems Suchrechte verweigert werden, was zu Fehlern führen kann.

Die Lektion, die Sie daraus lernen sollten, ist, dass Sie nicht ein paar Rezepten folgen, die Sie im Internet gefunden haben, ohne zu verstehen, was Sie tun .

Ihre erste Aufgabe besteht also darin, man chmodalle Dateiberechtigungen (alle) zu lesen und zu verstehen und zu verstehen, wie sie sich für Dateien und Verzeichnisse unterscheiden. Wenn dies nicht ausreicht, suchen Sie nach Erklärungen, bis Sie es verstanden haben.

Ihre nächste Aufgabe besteht darin, die Berechtigungen von /var, /var/wwwund /var/www/htmlauf etwas festzulegen, das (je nach Ihren Bedürfnissen) sinnvoll ist. Dazu müssen Sie die Frage "Wer sollte diese Verzeichnisse lesen / schreiben / durchsuchen können" beantworten. Im Falle /varsollten Sie so etwas erreichen 755. Wenn nicht, denk noch einmal nach.

Schließlich sollten Sie noch einmal ausführen chown pi /var/www/html, um den Besitzer dieses Verzeichnisses von Benutzer rootzu Benutzer zu ändern pi, da es nicht funktioniert hat. Sie können verwenden ls -d, um zu überprüfen, ob es funktioniert hat. Und wenn Sie gerade dabei sind, überlegen Sie, zu welcher Gruppe sie gehören soll (zu welcher Gruppe gehört der Benutzer pi?). Lesen Sie man chownund man chgrp.

Danke dirkt es hat funktioniert. Ich werde versuchen, beim nächsten Mal deinen Rat zu befolgen. Aber eine Idee, warum der Ordner als Binärdatei angezeigt wurde. user103292 vor 6 Jahren 0
Sorry, keine Ahnung. dirkt vor 6 Jahren 0