2010-02-08 09:34:14 +0000 2010-02-08 09:34:14 +0000
63
63

Äquivalent von chmod zum Ändern der Dateiberechtigungen in Windows

Gibt es ein Windows-Äquivalent von Linux chmod zum Ändern der Berechtigungen einer Datei?

Antworten (8)

27
27
27
2011-08-02 17:10:18 +0000

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.

13
13
13
2010-02-08 10:41:26 +0000

Entweder cacls , xcacls , oder mein persönlicher Favorit icacls wird wahrscheinlich das tun, was Sie brauchen.

10
10
10
2012-12-28 18:04:43 +0000

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:

  • In Windows-Dateisystemen gibt es die Attribute “hidden” (H) und “system” (S), die in Linux kein Äquivalent haben; dort werden Dateien versteckt, indem dem Namen ein Punkt (.) vorangestellt wird.
  • Es gibt auch kein Äquivalent zum Windows-“Archiv”-Attribut (A).
  • Es gibt kein Äquivalent zu den Linux-Attributen “ausführbar” (x) in den DOS/Windows-Dateiattributen.
  • Es gibt ist ein Äquivalent zum Windows-“Verzeichnis”-Attribut (D) (aber es kann sowieso nicht geändert werden).
  • In Linux-Dateisystemen gehört jeder Eintrag genau einem Benutzer und genau einer Gruppe, und Lesen/Schreiben/Ausführen kann für jeden von ihnen und für andere erlaubt werden. ACLs (wie sie von Windows verwendet werden) sind sogar noch flexibler, aber auch komplizierter, und die Kommandozeilensyntax ist eine PITA (meiner bescheidenen Meinung nach natürlich)

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.

7
7
7
2012-12-28 18:26:58 +0000
icacls "C:\folder" /grant:r "Domain\Users":(OI)(CI)M /T /C

Funktioniert wie ein Zauber, um die Berechtigungen eines Ordners für Domain-Benutzer zu ändern. Weitere Informationen zu cacls und icacls.

5
5
5
2010-02-08 11:37:51 +0000

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).

3
3
3
2014-07-29 14:22:12 +0000

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

2
2
2
2017-12-22 03:29:44 +0000

Für mich besteht die Abhilfe darin, Cygwin zu installieren und den Bin-Ordner zum Systempfad hinzuzufügen. Wenn Sie dann “chmod” in der Befehlszeile ausführen, wird es funktionieren. Obwohl ich seine Richtigkeit nicht überprüft habe.

2
2
2
2010-02-08 09:37:07 +0000

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).