Dateieigentümer in Bash mit chown ändern
Ändere mit chown Eigentümer und Gruppe von Dateien oder Verzeichnissen, prüfe das Ergebnis und vermeide unsichere rekursive Änderungen.
Interaktive Lektion startenVerwende chown, wenn eine Datei oder ein Verzeichnis dem falschen Benutzer oder der falschen Gruppe gehört. Prüfe zuerst das Ziel, ändere einen eindeutigen Pfad und kontrolliere das Ergebnis sofort. Füge -R nur hinzu, wenn wirklich jedes Element unterhalb eines Verzeichnisses dieselben Eigentumsangaben erhalten soll. In der Bash-chown-Lektion kannst du die Grundform in einem isolierten Dateisystem üben.
Aktuellen Eigentümer und aktuelle Gruppe prüfen
Untersuche den genauen Pfad, bevor du etwas änderst:
ls -ld project
ls -l project/readme.txt
In einer ausführlichen Auflistung stehen Eigentümer und Gruppe nach den Feldern für Berechtigungen und Linkanzahl. Vergewissere dich, dass project das gewünschte Verzeichnis ist und dass das Zielkonto und die Zielgruppe bereits existieren. chown erstellt weder Benutzer noch Gruppen.
Eigentümer und Gruppe gemeinsam ändern
Die übliche Form setzt Eigentümer:Gruppe vor den Pfad:
sudo chown admin:developers project
Damit wird admin Eigentümer und developers Gruppe des Verzeichniseintrags project. Der Inhalt wird nicht rekursiv geändert. Verwende sudo nur, wenn dein aktuelles Konto nicht die nötigen Rechte besitzt. Erweiterte Rechte schützen nicht vor einem falsch geschriebenen Namen oder Pfad.
Prüfe das Ergebnis:
ls -ld project
Lasse die Gruppe weg, wenn du nur den Eigentümer ändern möchtest:
sudo chown admin project/readme.txt
Lasse bei chown den Eigentümer leer, wenn du nur die Gruppe ändern möchtest:
sudo chown :developers project/readme.txt
Wenn nur die Gruppenzugehörigkeit geändert wird, ist die eigene chgrp-Anleitung oft verständlicher.
Rekursive Eigentumsänderungen getrennt beurteilen
Die Option -R wendet die Änderung auf das Ausgangsverzeichnis und alles darunter an:
sudo chown -R admin:developers project
Bestätige vor dem Drücken der Eingabetaste mit pwd und ls -ld project den Ausgangspunkt. Vermeide nicht aufgelöste Variablen, Platzhalter und Pfade aus nicht vertrauenswürdigen Nachrichten. Experimentiere nie mit rekursiven Eigentumsänderungen ab /, über ein vollständiges Home-Verzeichnis oder auf einem produktiv genutzten Mount.
Prüfe danach sowohl das Verzeichnis als auch repräsentative Dateien:
ls -ld project
ls -l project/readme.txt
Ein Verzeichnisbaum kann absichtlich Dateien enthalten, die verschiedenen Dienstkonten gehören. Werden sie alle durch einen einzigen Eigentümer ersetzt, können Deployments, Datenbanken, Container oder gemeinsam genutzte Verzeichnisse ausfallen, obwohl der Befehl selbst erfolgreich war.
Was chown nicht behebt
Eigentum und Berechtigungen sind getrennte Dinge. chown ändert, auf welchen Benutzer und welche Gruppe sich die Berechtigungsbits beziehen; chmod ändert die Bits selbst. Ist der Eigentümer korrekt, aber der Zugriff weiterhin verweigert, prüfe den Modus, statt die Eigentumsänderung zu wiederholen.
Auch das Verfolgen symbolischer Links, Netzwerk-Mounts, Container und verwaltete Dateisysteme können das Ergebnis beeinflussen. Lies die lokale Seite man chown, bevor du rekursive Änderungen an einem Baum mit Links oder Einhängepunkten vornimmst. Lehnt das Dateisystem den Vorgang ab, untersuche sein Eigentumsmodell, statt wiederholt umfassendere Rechte hinzuzufügen.
Für numerische Zugriffsmodi geht es mit der Erklärung der chmod-Zahlen weiter. Die vollständige Eigentumssyntax und die Optionen zum Durchlaufen dokumentiert die Coreutils-Referenz zu chown.
Quellen
Diese Dokumentationslinks liefern verlässliche Details zu den in diesem Artikel verwendeten Befehlen.
Nächstes
Verstehe numerische chmod-Rechte, wähle sichere Modi für Dateien und Verzeichnisse und prüfe das Ergebnis ohne riskante Rekursion.