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

Equivalent van chmod om bestandspermissies in Windows

te wijzigen Is er een Windows equivalent van Linux chmod om de permissies van een bestand te wijzigen?

Antwoorden (8)

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

Greg](https://superuser.com/users/84633/greg) noemt attrib - maar attrib komt niet in de buurt van chmod - attrib kan alleen-lezen/verborgen attributen van een enkel bestand instellen - het biedt geen fijnmazige controles zoals icacls dat doet.

icacls stelt de toegangscontrolelijsten in/reset, zodat u rechten voor individuele SID’s & groepen kunt toekennen/ontkennen. Het is echter vrij ingewikkeld.

Hier is een voorbeeld dat ik heb opgeslagen in mijn github gist ; het stelt de eigendoms- en toegangscontrolelijst voor alle bestanden in een map opnieuw in en is vooral nuttig om die vervelende “Je hebt rechten nodig van … om deze actie uit te voeren” te repareren, vooral wanneer je bestanden verplaatst vanuit een vorige installatie:

icacls * /reset /t /c /q

Reset vervangt de bestaande lijst door de standaardlijst.
/t werkt recursief op alle bestanden, mappen & submappen /q geeft geen succesmeldingen weer /c gaat door met de resterende bestanden, zelfs als er een fout optreedt.

U kunt ook dingen doen zoals een back-up maken van de bestaande ACL’s & deze over alles heen toepassen. Kijk eens naar ss64 die de verschillende opties & schakelaars goed uitlegt.

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

Ofwel cacls , xcacls , ofwel mijn persoonlijke favoriet icacls zal waarschijnlijk doen wat u nodig hebt.

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

Er kan (helaas) geen exact equivalent zijn, aangezien Linux en DOS/Windows attributen gebruiken voor verschillende doeleinden, en (zoals Chathuranga al zei) het beveiligingsmodel is anders:

  • In Windows bestandssystemen zijn er “verborgen” (H) en “systeem” (S) attributen die geen equivalent hebben in Linux; daar worden bestanden verborgen door de naam voor te stellen met een punt (.).
  • Er is ook geen equivalent voor het Windows “archief” (A) attribuut.
  • Er is geen equivalent voor de “uitvoerbare” (x) Linux attributen in de DOS/Windows bestandsattributen.
  • Er is een equivalent voor het Windows “directory” (D) attribuut (maar het kan toch niet veranderd worden).
  • In Linux bestandssystemen is elke entry eigendom van precies één gebruiker en precies één groep, en lees/schrijf/uitvoering kan worden toegestaan voor elk van hen, en voor anderen. ACLs (zoals gebruikt door Windows) zijn nog flexibeler, maar ook ingewikkelder, en de syntaxis van de commandoregel is een PITA (naar mijn bescheiden mening natuurlijk)

Het DOS-bestandsattribuut R (alleen-lezen) is degene die als gelijkwaardig kan worden beschouwd: dit attribuut set is ongeveer hetzelfde als het w-attribuut voor iedereen die ontbreekt; maar de toestemming om dit attribuut te wijzigen is onderworpen aan ACLs.

Het is misschien cool om een chmod/chown equivalent te hebben op Windows, misschien geschreven in een of andere scripttaal, die op zijn beurt attrib en cacls (of opvolgers) aanroept, maar ik heb er geen.

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

Werkt als een charme om rechten te wijzigen op een map voor domeingebruikers. Aanvullende informatie over cacls en icacls.

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

Het attrib commando komt het dichtst in de buurt van zeer elementaire zaken (alleen-lezen, archiefvlaggen). Dan is er nog het ACL (toegangscontrolelijst) commando cacls. Last but not least, aangezien Windows eigenlijk Posix-compliant is, bestaan de unix-achtige vlaggen wel degelijk. Als je de Cygwin tool set installeert, krijg je een chmod. (Een beetje off-topic, aangezien u op zoek bent naar een equivalent van een unix commando, kan het downloaden en installeren van Cgygwin iets interessants voor u zijn).

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

Ik gebruik het Windows commando takeown.exe om de bestandsrechten te wijzigen naar mijn huidige ingelogde gebruikers-id: http://technet.microsoft.com/en-us/library/cc753024.aspx ](http://technet.microsoft.com/en-us/library/cc753024.aspx)

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

Voor mij is de workaround het installeren van Cygwin, en het toevoegen van de bin folder aan het systeempad. Als je dan “chmod” in de opdrachtregel uitvoert, zal het werken. Hoewel ik de juistheid ervan niet heb geverifieerd.

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

Er is niets dat chmod heet in windows omdat het beveiligingsmodel van Windows anders is dan Linux. U kunt het attrib commando gebruiken om de eigenschappen van de objecten te veranderen. (Maar ze zijn meer in de richting van globale eigenschappen.)