chown hat die Berechtigungen rekursiv geändert


34

Ich habe den Befehl chown in einem Verzeichnis ausgeführt:

chown -R user:user {.,}*

Das {.,}*wird mit mvund verwendet cp, um sowohl versteckte als auch aufgelistete Dateien einzuschließen. Nun ging dieser Befehl durch und änderte diese beiden Dateien in meinem Verzeichnis, aber ich musste es brechen, um anzuhalten, da es weiterging. Jetzt fürchte ich, dass es die Berechtigungen für andere Dateien und Ordner geändert hat, da es nicht beendet wurde.


Antworten:


46

Durch die Verwendung von {.,}*haben Sie sowohl ./als auch eingeschlossen ../. Zusammen mit der -ROption, Ihr chownwar Anruf über das gesamte Dateisystem durchsuchen (und andere, montiert möglicherweise), durchlaufen ../. Mit anderen Befehlen kann dieser kleine Fehler ziemlich tödlich sein, aber glauben Sie mir, Sie sind nicht der erste und Sie werden nicht der letzte sein ...

Da dieser Vorgang ziemlich chownumfangreich ist, blieb Ihr Anruf eine Weile hängen, da viele Dateien verarbeitet werden mussten. Ich würde vorschlagen, dass Sie zu dem Verzeichnis zurückkehren, in dem Sie den Anruf getätigt haben, und schrittweise zurückgehen, /um festzustellen, welche Änderungen vorgenommen wurden. Möglicherweise können Sie eine Schnellkorrektur anwenden, indem Sie folgende Schritte ausführen:

chown root:root /* # Set ownership to root for all directories in /.
chown you:yourgroup /home/you -R # Take your home back.

Unter Ubuntu wird das /homeVerzeichnis dem ersten (admin / sudo) Benutzer übergeben, der auf dem System registriert ist. Wenn Sie der einzige Benutzer sind, möchten Sie möglicherweise Folgendes tun:

chown you:yourgroup /home -R

Ein einfaches chmod 755An /homeist jedoch ausreichend, auch wenn es zu root gehört.

Ein kurzer Blick direkt auf /(einschließlich der Root-Berechtigungen selbst ls -ld /) wäre auch ein guter Ausgangspunkt. Ich schlage vor, dass Sie sicherstellen, dass /das zu root gehört, mit einem 755-Berechtigungssatz.

Wenn Sie früher chowneine bestimmte Eigentümerschaft festgelegt haben (einen anderen Benutzer als Sie oder root, eine seltene Gruppe, ...), möchten Sie möglicherweise nach -ed-Dateien findsuchen chown.

find / -user {username}
find / -group {groupname}

Leider gibt es keine Gründe undofür das, was du getan hast. Linux verfolgt diese "gelegentlichen" Operationen natürlich nicht.

Weitere Informationen zu dem, was Sie erreichen wollten , finden Sie in dieser SuperUser-Frage .


Mein Stammverzeichnis scheint gut zu sein. Es gehört root.
nicoX

Sie müssen chowndann pünktlich getötet haben , aber überprüfen Sie weiter, indem Sie von dem Verzeichnis chown, in dem Sie ausgeführt haben , zum Stammverzeichnis wechseln.
John WH Smith

War hier das Problem, dass ich das -R Flag benutzt habe? Und wie können Sie den Besitzer in einem Befehl für versteckte und aufgelistete Dateien ändern.
nicoX

2
Siehe den Link, den ich am Ende meiner Antwort hinzugefügt habe. Das -Rwar das Problem, da Sie auch rekursiv durchgingen .., was schließlich dazu führte, dass Sie den gesamten Dateibaum von /deep/directory/where/you/chownednach änderten /.
John WH Smith
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.