Comment accorder des permissions à un utilisateur sur un répertoire (lecture, écriture, modification) en utilisant la ligne de commande Windows ?
Super. Mais comment faire cela de manière récursive ?
Comment accorder des permissions à un utilisateur sur un répertoire (lecture, écriture, modification) en utilisant la ligne de commande Windows ?
A partir de Vista, cacls
est déprécié. Voici les deux premières lignes d'aide :
C:\>cacls
NOTE: Cacls is now deprecated, please use Icacls.
Displays or modifies access control lists (ACLs) of files
Vous devez utiliser icacls
à la place. C'est ainsi que vous accordez à John un contrôle total sur D:\test
et tous ses sous-dossiers :
C:\>icacls "D:\test" /grant John:(OI)(CI)F /T
Selon la documentation de MS :
F
= Contrôle totalCI
= Container Inherit - Ce drapeau indique que les conteneurs subordonnés hériteront de cet ACE.OI
= Object Inherit - Ce drapeau indique que les fichiers subordonnés hériteront de l'ACE./T
= Appliquer récursivement aux fichiers et sous-dossiers existants. ( OI
y CI
s'appliquent uniquement aux nouveaux fichiers et sous-dossiers). Crédit : commentaire de @AlexSpence.Pour une documentation complète, vous pouvez exécuter " icacls
"sans arguments ou consultez la documentation de Microsoft aquí y aquí
Vous pouvez également utiliser ICACLS.
Pour accorder le Utilisateurs groupe Contrôle total à un dossier :
>icacls "C:\MyFolder" /grant Users:F
Pour accorder Modifier aux utilisateurs de IIS pour C:\MyFolder
(si vous en avez besoin, votre IIS a la possibilité d'envoyer les fichiers dans un dossier spécifique) :
>icacls "C:\MyFolder" /grant IIS_IUSRS:M
Si vous le faites ICACLS / ? vous pourrez voir toutes les options disponibles.
Ajouter le contrôle total n'a pas fonctionné pour moi jusqu'à ce que /grant Users:(OI)(CI)F
utilisé
Dois-je remplacer Users
avec quelque chose d'autre ou NON ? D'après icacls "C:\MyFolder" /grant Users:F
Utilice cacls
commande. Voir les informations aquí .
Fichiers CACLS /e /p {USERNAME}:{PERMISSION}
Où,
/p : Définir une nouvelle permission
/e : Modifier la permission et garder l'ancienne permission telle quelle, c'est-à-dire modifier l'ACL au lieu de la remplacer.
{USERNAME} : Nom de l'utilisateur
{PERMISSION} : La permission peut être :
R - Lire
W - Écriture
C - Changement (écriture)
F - Contrôle total
Par exemple, accordez à Rocky le contrôle total (F) avec la commande suivante (tapez à l'invite de commande de Windows) :
C:> Fichiers CACLS /e /p rocky:f
Lisez l'aide complète en tapant la commande suivante :
C:> cacls / ?
Excellente réponse ! La seule chose à noter, c'est que les fichiers sont les fichiers réels sur lesquels vous voulez changer les permissions. Peut-être que [files] ou {files} serait une meilleure explication.
cacls
est pertinente ; elle est toujours disponible dans Windows 10
; Microsoft déprécierait cmd.exe
en faveur de Powershell également.
@Chinggis6 Être "encore disponible" ne signifie pas que quelque chose est une bonne idée à utiliser ou à recommander aux autres. Aussi, cmd.exe
n'est pas déprécié et n'est pas susceptible de l'être, donc ce n'est pas un point en faveur de l'option icacls
du tout, bien au contraire.
Avec une vba Excel script pour provisionner et créer des comptes. J'avais besoin d'accorder à notre nouvel utilisateur les droits complets sur le dossier et les sous-dossiers qui ont été créés par l'outil en utilisant notre compte 'x' d'administrateur.
cacls ressemblait à quelque chose comme ça : cacls \FileServer\Users\Username /e /g Domaine \Username :C
J'avais besoin de faire migrer ce code vers Windows 7 et au-delà. Ma solution s'est avérée être :
icacls \FileServer\Users\Username /grant:r Domaine \Username :(OI)(CI)F /t
/grant:r - Accorde les droits d'accès à l'utilisateur spécifié. Les permissions remplacent les permissions explicites précédemment accordées. Sans :r, les autorisations sont ajoutées à toutes les autorisations explicites accordées précédemment.
(OI)(CI) - Ce dossier, ses sous-dossiers et ses fichiers.
F - Accès complet
/t - Traverse tous les sous-dossiers pour correspondre aux fichiers/répertoires.
Cela m'a donné un dossier sur ce serveur que l'utilisateur ne pouvait voir que ce dossier et créer des sous-dossiers, qu'il pouvait lire et écrire des fichiers. Ainsi que créer de nouveaux dossiers.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Nous exécutons le service apache sous un compte utilisateur spécifique, cela permettrait-il à apache d'accéder au Root des documents avec tous les droits ?