Existe-t-il un équivalent Windows de Linux chmod
pour modifier les autorisations d'un fichier?
Existe-t-il un équivalent Windows de Linux chmod
pour modifier les autorisations d'un fichier?
Réponses:
Greg mentionne attrib
- mais attrib
n’est pas très proche de chmod
- attrib
peut définir les attributs Lecture / Masqué d’un seul fichier - il ne fournit pas de contrôles à granularité fine comme c’est le icacls
cas.
icacls
définit / réinitialise les listes de contrôle d'accès afin que vous puissiez accorder / refuser des droits pour des SID et des groupes individuels. C'est assez compliqué cependant.
Voici un exemple que j'ai sauvegardé dans mon github gist ; il réinitialise les listes de propriété et de contrôle d'accès pour tous les fichiers d'un dossier et est particulièrement utile pour corriger les problèmes "Vous devez avoir les autorisations de .. pour effectuer cette action", en particulier lors du transfert de fichiers d'une installation précédente:
icacls * /reset /t /c /q
Réinitialiser remplace celui existant par la liste par défaut.
/t
agit de manière récursive sur tous les fichiers, les dossiers et les sous
/q
- dossiers n’affiche aucun message de réussite mais
/c
continue avec les fichiers restants, même si une erreur se produit.
Vous pouvez également faire des choses comme sauvegarder les ACL existantes et les appliquer à tous. Regardez ss64 qui explique très bien les différentes options et commutateurs.
cmd
que vous obtenez en appuyant sur [Win] + [R] ne les a pas. Pour ces besoins spécifiques, j'ai un raccourci "Admin shell", avec l'option "Exécuter en tant qu'administrateur" (ou similaire; je suis sur un système Windows allemand) cochée (et avec une couleur de fond rouge foncé).
Malheureusement, il ne peut y avoir d'équivalent exact, car Linux et DOS / Windows utilisent des attributs à des fins différentes, et (comme Chathuranga l'a dit auparavant), le modèle de sécurité est différent:
H
) et "system" ( S
) qui n'ont pas d'équivalent sous Linux; là, les fichiers sont cachés en ajoutant le point au début du nom ( .
).A
attribut "archive" ( ) de Windows .x
attributs Linux "executable" ( ) dans les attributs de fichier DOS / Windows.D
attribut "directory" ( ) de Windows (mais il ne peut pas être changé de toute façon).L'attribut de fichier DOS R
(en lecture seule) est celui qui peut être considéré comme ayant un équivalent: cet ensemble d' attributs est à peu près similaire à l' w
attribut correspondant à tous les manquants; mais la permission de changer cet attribut est soumise aux ACL.
Il peut être intéressant d’avoir un chmod
/ chown
équivalent sous Windows, peut-être écrit dans un langage de script, qui appelle à son tour attrib
et cacls
(ou ses successeurs), mais je n’en ai pas.
CAP_LINUX_IMMUTABLE
processus), alors que l’accès aux attributs définis dans Windows est tout ou rien. C'est une erreur courante dans les implémentations de chmod
Windows d'utiliser cette commande pour définir l'attribut de fichier en lecture seule. Malheureusement, les systèmes sont aussi bien informés que les programmeurs qui les développent.
chattr
commande. Mais vous ne vouliez pas dire "confondre les attributs de fichier et les autorisations", n'est-ce pas? AFAICS, chaque mot que j'ai écrit à propos des attributs DOS est toujours correct.
chattr
, sauf que Windows possède un attribut de répertoire car il n'y a pas d'inode.
chmod
Windows car rien ne ressemble à l'attribut "mode" du fichier. L'ensemble standard d'attributs de fichier Windows n'a rien à voir avec cela. L'attribut en lecture seule n'est pas une autorisation de fichier. Il dit en gros que le fichier est gravé dans la pierre, donc toutes les tentatives pour le modifier doivent échouer. L'attribut de fichier "immuable" de Linux est similaire. Windows utilise uniquement les ACL pour les autorisations. Par conséquent, icacls.exe et autres sont les seules commandes similaires sur le sujet des autorisations.
icacls "C:\folder" /grant:r "Domain\Users":(OI)(CI)M /T /C
Fonctionne comme un charme pour modifier les autorisations sur un dossier pour les utilisateurs du domaine. Informations complémentaires concernant cacls
et icacls
.
La attrib
commande est la correspondance la plus proche pour des choses très basiques (en lecture seule, indicateurs d'archive). Ensuite, il y a la commande ACL (liste de contrôle d'accès) cacls
. Dernier point mais non le moindre, comme Windows est conforme à Posix, les indicateurs de type Unix existent. Si vous installez le jeu d’outils Cygwin, vous obtiendrez un chmod
. (Un peu en dehors du sujet, puisque vous recherchez un équivalent d'une commande unix, télécharger et installer Cgygwin pourrait être quelque chose d'intéressant pour vous.)
J'utilise la commande Windows takeown.exe
pour modifier les autorisations de fichier sur mon ID d'utilisateur actuellement connecté: http://technet.microsoft.com/en-us/library/cc753024.aspx
Il n'y a rien appelé chmod dans Windows car le modèle de sécurité de Windows est différent de celui de Linux. Vous pouvez utiliser la attrib
commande pour modifier les propriétés des objets. (Mais ils sont plus envers les propriétés globales.)