Gibt es ein Windows-Äquivalent zu Linux chmod
, um die Berechtigungen einer Datei zu ändern?
quelle
Gibt es ein Windows-Äquivalent zu Linux chmod
, um die Berechtigungen einer Datei zu ändern?
Greg erwähnt attrib
- aber attrib
nicht überall in der Nähe chmod
- attrib
Set Read-only kann / verstecktes Attribut einer einzigen Datei - es bietet keine feinkörnig Kontrollen wie der icacls
Fall ist.
icacls
Setzt / setzt die Zugriffssteuerungslisten zurück, sodass Sie Rechte für einzelne SIDs und Gruppen gewähren / verweigern können. Es ist jedoch ziemlich kompliziert.
Hier ist ein Beispiel, das ich in meinem Github-Inhalt gespeichert habe . Es setzt die Besitz- und Zugriffssteuerungsliste für alle Dateien in einem Ordner zurück und ist besonders nützlich, um die ärgerlichen Probleme zu beheben, die beim Verschieben von Dateien aus einer früheren Installation auftreten.
icacls * /reset /t /c /q
Zurücksetzen ersetzt die vorhandene durch die Standardliste.
/t
Wirkt rekursiv auf alle Dateien, Ordner und Unterordner. Es werden
/q
keine Erfolgsmeldungen angezeigt. Die
/c
verbleibenden Dateien bleiben bestehen, auch wenn ein Fehler auftritt.
Sie können auch die vorhandenen ACLs sichern und auf alle anwenden. Schauen Sie sich ss64 an, das die verschiedenen Optionen und Schalter sehr gut erklärt.
cmd
das Sie durch Drücken von [Win] + [R] erhalten, fehlen diese. Für solche speziellen Bedürfnisse habe ich eine "Admin-Shell" -Verknüpfung mit "Als Administrator ausführen" (oder ähnlich; ich bin auf einem deutschen Windows-System) aktiviert (und mit einer dunkelroten Hintergrundfarbe).Entweder cacls , xcacls oder meine persönlichen Lieblings- icacls werden wahrscheinlich das tun, was Sie brauchen.
quelle
icacls
ist nur unter Vista / 7 verfügbar.Es kann (leider) kein genaues Äquivalent geben, da Linux und DOS / Windows Attribute für unterschiedliche Zwecke verwenden, und (wie Chathuranga zuvor sagte) das Sicherheitsmodell anders ist:
H
) und "system" (S
), die unter Linux keine Entsprechung haben. Dort werden Dateien ausgeblendet, indem dem Namen ein Punkt (.
) vorangestellt wird .A
Attribut "archive" ( ).x
Linux-Attributen "executable" ( ) in den DOS / Windows-Dateiattributen.D
Attribut "directory" ( ) (das jedoch nicht geändert werden kann).Das DOS-Dateiattribut
R
(schreibgeschützt) kann als äquivalent angesehen werden: Dieses Attribut entspricht in etwa demw
Attribut für alle fehlenden; Die Berechtigung zum Ändern dieses Attributs unterliegt jedoch ACLs.Es mag cool sein, ein
chmod
/chown
-Äquivalent unter Windows zu haben, vielleicht in einer Skriptsprache geschrieben, die wiederumattrib
undcacls
(oder Nachfolger) aufruft , aber ich habe keines.quelle
CAP_LINUX_IMMUTABLE
Prozess festgelegt werden), wohingegen der Zugriff auf das Festlegen von Attributen in Windows alles oder nichts ist. In Implementierungen von Windows ist es ein häufiger Fehlerchmod
, diesen Befehl zum Festlegen des schreibgeschützten Dateiattributs zu verwenden. Leider sind Systeme nur so gut informiert wie die Programmierer, die sie entwickeln.chattr
Befehl nicht bekannt . Aber du hast mich nicht damit gemeint, "Dateiattribute und Berechtigungen zu verwechseln", oder? AFAICS, jedes Wort, das ich über DOS- Attribute geschrieben habe, ist immer noch richtig.chattr
, außer dass Windows ein Verzeichnisattribut hat, da es keinen Inode gibt.chmod
In Windows gibt es keine direkte Entsprechung, da nichts mit dem Attribut "mode" der Datei vergleichbar ist. Der Standardsatz von Windows-Dateiattributen hat damit nichts zu tun. Das schreibgeschützte Attribut ist keine Dateiberechtigung. Grundsätzlich heißt es, dass die Datei in Stein gemeißelt ist, sodass alle Versuche, sie zu ändern, fehlschlagen müssen. Das Linux-Dateiattribut "unveränderlich" ist ähnlich. Windows verwendet nur ACLs für Berechtigungen, daher sind icacls.exe und dergleichen die einzigen ähnlichen Befehle zum Thema Berechtigungen.Funktioniert wie ein Zauber, um Berechtigungen für einen Ordner für Domänenbenutzer zu ändern. Zusätzliche Informationen zu
cacls
undicacls
.quelle
Der
attrib
Befehl entspricht am ehesten den grundlegenden Dingen (schreibgeschützt, Archivierungsflags). Dann gibt es den ACL-Befehl (Access Control List)cacls
. Last but not least existieren die Unix-ähnlichen Flags, da Windows tatsächlich Posix-kompatibel ist. Wenn Sie das Cygwin-Toolset installieren, erhalten Sie einechmod
. (Da Sie nach einer Entsprechung für einen Unix-Befehl suchen, ist das Herunterladen und Installieren von Cgygwin möglicherweise etwas Interessantes für Sie.)quelle
Ich verwende den Windows-Befehl
takeown.exe
, um die Dateiberechtigungen in meine derzeit angemeldete Benutzer-ID zu ändern: http://technet.microsoft.com/en-us/library/cc753024.aspxquelle
In Windows gibt es nichts, was als chmod bezeichnet wird, da sich das Sicherheitsmodell von Windows von Linux unterscheidet. Mit dem
attrib
Befehl können Sie die Eigenschaften der Objekte ändern. (Aber sie sind mehr auf globale Eigenschaften ausgerichtet.)quelle
Für mich besteht die Problemumgehung darin, Cygwin zu installieren und den Ordner bin dem Systempfad hinzuzufügen. Wenn Sie dann "chmod" in der Befehlszeile ausführen, funktioniert es. Obwohl ich seine Richtigkeit nicht überprüft habe.
quelle