83 votes

Equivalent de chmod pour changer les permissions des fichiers sous Windows

Y a-t-il un équivalent Windows de l'équivalent Linux chmod pour changer les permissions d'un fichier ?

38voto

Sathyajith Bhat Points 60630

Greg mentionne attrib - mais attrib n'est pas du tout proche de chmod - attrib peut définir les attributs "lecture seule" ou "caché" d'un seul fichier - il ne fournit pas de contrôles fins comme le fait le programme icacls fait.

icacls définit/réinitialise les listes de contrôle d'accès, ce qui vous permet d'accorder/de refuser des droits pour des SID et des groupes individuels. C'est cependant assez compliqué.

Voici un exemple que j'ai sauvegardé dans mon fichier github gist Elle réinitialise la propriété et la liste de contrôle d'accès pour tous les fichiers d'un dossier et est particulièrement utile pour corriger les ennuyeux "Vous avez besoin des autorisations de pour effectuer cette action", notamment lors du déplacement de fichiers d'une installation précédente :

icacls * /reset /t /c /q 

La réinitialisation remplace la liste existante par la liste par défaut.
/t agit récursivement sur tous les fichiers, dossiers et sous-dossiers
/q n'affiche aucun message de réussite
/c continue avec les fichiers restants même en cas d'erreur.

Vous pouvez également sauvegarder les listes de contrôle d'accès existantes et les appliquer à toutes les installations. Jetez un coup d'œil à ss64 qui explique très bien les différentes options et interrupteurs.

15voto

Matt Points 1482

Soit cacls , xcacls ou mon préféré icacls fera probablement ce dont vous avez besoin.

13voto

Ed Avis Points 101

Il ne peut (malheureusement) pas y avoir d'équivalent exact, puisque Linux et DOS/Windows utilisent les attributs à des fins différentes, et (comme Chathuranga l'a déjà dit) le modèle de sécurité est différent :

  • Dans les systèmes de fichiers Windows, il existe des fichiers "cachés" ( H ) et "système" ( S ) qui n'ont pas d'équivalent sous Linux ; là, les fichiers sont cachés en faisant précéder leur nom d'un point ( . ).
  • Il n'y a pas d'équivalent à l'"archive" de Windows ( A ), soit.
  • Il n'existe pas d'équivalent à l'"exécutable" ( x ) attributs Linux dans les attributs de fichiers DOS/Windows.
  • Il y a es un équivalent du "répertoire" de Windows ( D ) (mais il ne peut pas être modifié de toute façon).
  • Dans les systèmes de fichiers Linux, chaque entrée appartient à un seul utilisateur et à un seul groupe, et la lecture, l'écriture et l'exécution peuvent être autorisées pour chacun d'entre eux et pour les autres. Les ACLs (comme celles utilisées par Windows) sont encore plus flexibles, mais aussi plus compliquées, et la syntaxe en ligne de commande est un PITA (à mon humble avis, bien sûr).

L'attribut de fichier DOS R (en lecture seule) est celui qui peut être considéré comme ayant un équivalent : cet attribut set est à peu près comme le w pour tout ce qui manque ; mais la permission de changer cet attribut est soumise aux ACL.

Ça pourrait être cool d'avoir un chmod / chown équivalent sous Windows, peut-être écrit dans un langage de script, qui appelle à son tour attrib y cacls (ou successeurs), mais je n'en ai pas.

8voto

MDT Guy Points 3731
icacls "C:\folder" /grant:r "Domain\Users":(OI)(CI)M /T /C

Fonctionne à merveille pour modifier les autorisations sur un dossier pour les utilisateurs du domaine. Informations supplémentaires concernant cacls y icacls .

5voto

J'utilise la commande Windows takeown.exe pour modifier les droits d'accès aux fichiers en fonction de l'identité de l'utilisateur connecté : http://technet.microsoft.com/en-us/library/cc753024.aspx

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X