Maison > développement back-end > Golang > Comment définir avec précision les autorisations de fichiers dans Go à l'aide de « os.FileMode » ?

Comment définir avec précision les autorisations de fichiers dans Go à l'aide de « os.FileMode » ?

Barbara Streisand
Libérer: 2024-11-12 17:57:01
original
579 Les gens l'ont consulté

How to Precisely Set File Permissions in Go using `os.FileMode`?

Instanciation de os.FileMode pour la création/mise à jour de fichiers

L'instanciation de os.FileMode garantit correctement les paramètres d'autorisation appropriés pour les fichiers lors de la création ou de la mise à jour. De nombreux didacticiels recourent à la définition directe des bits d'autorisation, mais une approche plus précise consiste à utiliser le type os.FileMode.

Constantes personnalisées pour la définition des autorisations

En l'absence de paramètres prédéfinis constantes dans os ou syscall, vous pouvez déclarer les vôtres :

const (
    OS_READ = 04
    OS_WRITE = 02
    OS_EX = 01
    ...
    OS_ALL_RWX = OS_ALL_RW | OS_ALL_X
)
Copier après la connexion

Exemple de paramètre d'autorisation de précision

Voici un exemple illustrant l'utilisation de constantes personnalisées :

func FileWrite(path string, r io.Reader, uid, gid int, perms string) (int64, error) {
    fileMode := os.FileMode(0)
    if perms[0] == '6' {
        fileMode |= OS_USER_RW
    } else if perms[0] == '7' {
        fileMode |= OS_USER_RWX
    }
    ...
    // Continue setting file mode based on the remaining characters of `perms`
    ...
    w, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, fileMode)
    ...
}
Copier après la connexion

Avantages de l'approche constante personnalisée

Les constantes personnalisées fournissent :

  • Mécanisme de définition des autorisations clair et portable
  • Élimination des nombres magiques et de la confusion potentielle
  • Flexibilité pour manipuler les autorisations en fonction des scénarios souhaités

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal