Äquivalent von chmod zum Ändern der Dateiberechtigungen in Windows
Gibt es ein Windows-Äquivalent von Linux chmod
zum Ändern der Berechtigungen einer Datei?
Gibt es ein Windows-Äquivalent von Linux chmod
zum Ändern der Berechtigungen einer Datei?
Greg erwähnt attrib
- aber attrib
ist nicht annähernd chmod
- attrib
kann schreibgeschützte/versteckte Attribute einer einzelnen Datei setzen - es bietet keine feinkörnigen Steuerelemente wie icacls
dies tut.
icacls
setzt/zurücksetzt die Zugriffskontrolllisten, so dass Sie Rechte für einzelne SIDs & Gruppen gewähren/verweigern können. Es ist allerdings ziemlich kompliziert.
Hier ist ein Beispiel, das ich in meinem github gist gespeichert habe; es setzt die Eigentümer- und Zugriffskontrollliste für alle Dateien in einem Ordner zurück und ist besonders nützlich, um diese lästigen “Sie brauchen Berechtigungen von …, um diese Aktion durchzuführen” zu beheben, besonders wenn Sie Dateien von einer früheren Installation verschieben:
icacls * /reset /t /c /q
Reset ersetzt die vorhandene durch die Standardliste.
/t
wirkt rekursiv auf alle Dateien, Ordner und Unterordner
/q
zeigt keine Erfolgsmeldungen an
/c
fährt mit den verbleibenden Dateien fort, selbst wenn ein Fehler auftritt.
Sie können auch Dinge wie die Sicherung der vorhandenen ACLs durchführen & sie auf alle anwenden. Werfen Sie einen Blick auf ss64 , der die verschiedenen Optionen & Schalter sehr gut erklärt.
Es kann (leider) kein exaktes Äquivalent geben, da Linux und DOS/Windows Attribute für unterschiedliche Zwecke verwenden, und (wie Chathuranga vorhin sagte) das Sicherheitsmodell unterschiedlich ist:
H
) und “system” (S
), die in Linux kein Äquivalent haben; dort werden Dateien versteckt, indem dem Namen ein Punkt (.
) vorangestellt wird. A
). x
) in den DOS/Windows-Dateiattributen. D
) (aber es kann sowieso nicht geändert werden). Das DOS-Dateiattribut R
(schreibgeschützt) ist dasjenige, das man als äquivalent betrachten könnte: Dieses Attribut set ist ungefähr so wie das Attribut w
für alle, die fehlen; aber die Erlaubnis, dieses Attribut zu ändern, hängt von ACLs ab.
Es wäre vielleicht cool, ein chmod
/chown
-Äquivalent unter Windows zu haben, vielleicht in einer Skriptsprache geschrieben, die wiederum attrib
und cacls
(oder Nachfolger) aufruft, aber ich habe keine.
Der Befehl attrib
entspricht am ehesten den sehr grundlegenden Dingen (schreibgeschützt, Archiv-Flags). Dann gibt es den ACL-Befehl cacls
(Zugriffskontrollliste). Zu guter Letzt, da Windows eigentlich Posix-kompatibel ist, gibt es die Unix-ähnlichen Flags. Wenn Sie den Cygwin-Werkzeugsatz installieren, erhalten Sie den Befehl chmod
. (Ein wenig off-topic, da Sie nach einem Äquivalent eines Unix-Befehls suchen, könnte das Herunterladen und Installieren von Cgygwin etwas Interessantes für Sie sein).
Ich verwende den Windows-Befehl takeown.exe
, um die Dateiberechtigungen auf meine aktuell angemeldete Benutzerkennung zu ändern: http://technet.microsoft.com/en-us/library/cc753024.aspx
In Windows gibt es nichts, was chmod genannt wird, weil das Sicherheitsmodell von Windows anders ist als das von Linux. Sie können den Befehl attrib
verwenden, um die Eigenschaften der Objekte zu ändern. (Aber sie sind mehr auf globale Eigenschaften ausgerichtet).