Existe-t-il un équivalent Windows de la chmod
de Linux pour modifier les autorisations d'un fichier?
Gregmentionsattrib
- mais attrib
n'est pas proche de chmod
- attrib
peut définir les attributs Lecture/Masqué d'un seul fichier - il ne fournit pas de contrôles détaillés tels que icacls
Est-ce que.
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 la liste de contrôle de propriété et 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, 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 faire des choses comme sauvegarder les ACL existantes et les appliquer à tous. Regardez ss64 qui explique très bien les différentes options et options.
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 "système" (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
) de Windows.x
) dans les attributs de fichier DOS/Windows.D
) 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 attribut set est à peu près similaire à l'attribut w
pour tous les manquants; mais l'autorisation de modifier cet attribut est soumise aux ACL.
Il peut être intéressant d’avoir un équivalent chmod
/chown
sous Windows, écrit éventuellement dans un langage de script, qui appelle à son tour attrib
et cacls
(ou successeurs), mais je n’en ai pas.
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 supplémentaires concernant cacls
et icacls
.
La commande attrib
est la correspondance la plus proche pour des choses très simples (indicateurs en lecture seule, archive). Ensuite, il y a la commande cacls
de la liste de contrôle d'accès (ACL). Dernier point mais non le moindre, puisque Windows est conforme à Posix, les indicateurs de type Unix existent. Si vous installez le jeu d’outils Cygwin, vous obtiendrez une chmod
. (Un peu hors 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 commande attrib
pour modifier les propriétés des objets. (Mais ils sont plus orientés vers les propriétés globales.)
Pour moi, la solution consiste à installer Cygwin et à ajouter son dossier bin au chemin système. Ensuite, si vous exécutez "chmod" en ligne de commande, cela fonctionnera. Bien que je n’ai pas vérifié son exactitude.