Maison > Article > développement back-end > Comment gérer les autorisations de fichiers du système de fichiers et les problèmes de gestion des autorisations ACL des fichiers simultanés en langage Go ?
Comment gérer les autorisations de fichiers du système de fichiers et les problèmes de gestion des autorisations ACL des fichiers simultanés en langage Go ?
Dans le langage Go, la gestion des autorisations de fichiers du système de fichiers et des autorisations ACL peut être facilement gérée à l'aide des packages os et os/user de la bibliothèque standard. Lors du traitement de fichiers simultanés, nous pouvons contrôler les autorisations des fichiers via les étapes suivantes.
fileInfo, err := os.Stat("file.txt") if err != nil { log.Fatal(err) } mode := fileInfo.Mode() permissions := mode.Perm() fmt.Printf("文件权限:%s ", permissions)
err := os.Chmod("file.txt", 0644) // 设置文件权限为644 if err != nil { log.Fatal(err) }
currentUsr, err := user.Current() if err != nil { log.Fatal(err) } usr, err := user.Lookup("username") if err != nil { log.Fatal(err) } grp, err := user.LookupGroup("groupname") if err != nil { log.Fatal(err) }
usr, err := user.Lookup("username") if err != nil { log.Fatal(err) } grp, err := user.LookupGroup("groupname") if err != nil { log.Fatal(err) } err := os.Chown("file.txt", usr.UID, grp.GID) if err != nil { log.Fatal(err) }
package main import ( "golang.org/x/sys/windows/security" "log" ) func main() { path := "file.txt" wsd, err := security.NewDescriptor(path, security.Sddl) if err != nil { log.Fatal(err) } dacl, err := wsd.DACL() if err != nil { log.Fatal(err) } allowed, denied := dacl.Allowed(), dacl.Denied() for _, ace := range allowed { sid := ace.SID() log.Printf("允许访问:%v", sid.Account()) } for _, ace := range denied { sid := ace.SID() log.Printf("拒绝访问:%v", sid.Account()) } }
Le code ci-dessus illustre comment obtenir les informations d'autorisation ACL d'un fichier dans un système Windows et afficher les comptes qui autorisent et refusent l'accès.
Il convient de noter que la gestion des autorisations ACL sera différente selon les systèmes d'exploitation, donc lors du développement multiplateforme, vous devez ajuster le code en fonction du système d'exploitation cible.
En résumé, en utilisant la bibliothèque standard et les bibliothèques tierces du langage Go, nous pouvons facilement gérer les autorisations de fichiers du système de fichiers et les problèmes de gestion des autorisations ACL des fichiers simultanés. Qu'il s'agisse de définir des autorisations de fichiers, d'obtenir des informations sur les utilisateurs et les groupes ou d'effectuer une gestion plus complexe des autorisations ACL, le langage Go offre une multitude de fonctions et d'outils pour répondre à différents besoins.
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!