Maison  >  Article  >  développement back-end  >  Comment puis-je contrôler l’accès aux fichiers sous Windows à l’aide de Go ?

Comment puis-je contrôler l’accès aux fichiers sous Windows à l’aide de Go ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-26 20:53:02833parcourir

How can I control file access in Windows using Go?

Contrôler l'accès aux fichiers sous Windows avec Go

Bien que la fonction os.Chmod() de Go définisse sans effort les autorisations de fichiers et de répertoires sous Linux, elle ne fonctionne pas sous Windows. Comprendre les subtilités des contrôles d'accès Windows est crucial dans ce scénario.

Autorisations de fichiers et de répertoires Windows

Contrairement à Unix, Windows utilise un système de contrôle d'accès plus nuancé basé sur des ACL (listes de contrôle d'accès) et ACE (entrées de contrôle d'accès). Les ACL contiennent des ACE qui définissent les droits d'accès pour des utilisateurs et des groupes spécifiques.

Solution : utiliser le package Go-ACL

La manipulation manuelle des ACL et des ACE peut être fastidieuse. Heureusement, le package go-acl simplifie cette tâche en exposant une fonction Chmod() adaptée à Windows :

<code class="go">import "github.com/hectane/go-acl"

err := acl.Chmod("C:\path\to\file.txt", 0755)</code>

Cette fonction crée trois ACE dans l'ACL du fichier :

  • Un pour le propriétaire (WinCreatorOwnerSid)
  • Un pour le groupe (WinCreatorGroupSid)
  • Un pour tout le monde (WinWorldSid)

Les autorisations accordées par ces ACE correspondent aux valeur octale spécifiée (par exemple, 0755).

Résultats

Lors de l'exécution de Chmod(), l'ACL du fichier cible est modifiée pour refléter les autorisations souhaitées pour le propriétaire, le groupe et tous les autres, de manière efficace contrôler l'accès au fichier ou au répertoire sous Windows à l'aide de Go.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn