Existe-t-il un équivalent Windows de Linux chmodpour modifier les autorisations d'un fichier?
Existe-t-il un équivalent Windows de Linux chmodpour modifier les autorisations d'un fichier?
Réponses:
Greg mentionne attrib - mais attrib n’est pas très proche de chmod- attribpeut définir les attributs Lecture / Masqué d’un seul fichier - il ne fournit pas de contrôles à granularité fine comme c’est le icaclscas.
icaclsdé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.
/tagit de manière récursive sur tous les fichiers, les dossiers et les sous
/q- dossiers n’affiche aucun message de réussite mais
/ccontinue 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.
cmdque 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 ( .).Aattribut "archive" ( ) de Windows .xattributs Linux "executable" ( ) dans les attributs de fichier DOS / Windows.Dattribut "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' wattribut 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 attribet cacls(ou ses successeurs), mais je n’en ai pas.
CAP_LINUX_IMMUTABLEprocessus), 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 chmodWindows 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.
chattrcommande. 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.
chmodWindows 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 caclset icacls.
La attribcommande 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.exepour 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 attribcommande pour modifier les propriétés des objets. (Mais ils sont plus envers les propriétés globales.)