Maison  >  Article  >  développement back-end  >  Comment définir les autorisations de fichiers à l'aide de os.FileMode dans Golang ?

Comment définir les autorisations de fichiers à l'aide de os.FileMode dans Golang ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-11 22:26:03383parcourir

How to Set File Permissions Using os.FileMode in Golang?

Utiliser os.FileMode pour définir les autorisations de fichiers

La création de fichiers dans Golang implique souvent de spécifier des autorisations de fichiers à l'aide d'indicateurs au niveau du bit. Cependant, de nombreux exemples utilisent simplement des autorisations numériques, telles que 0664, ce qui peut être gênant.

Instancier correctement os.FileMode

Pour instancier correctement os.FileMode, vous devez pour définir les éléments suivants :

  • Bits d'autorisation : Ceux-ci déterminent qui peut lire, écrire ou exécuter le fichier.
  • ID utilisateur (UID) : L'utilisateur propriétaire du fichier.
  • ID de groupe (GID) : Le groupe propriétaire du fichier.

Exemple de mise en œuvre

Comme il n'y a pas de constantes pour les bits d'autorisation dans os ou syscall, vous pouvez définir les vôtres :

const (
    OS_READ = 04
    OS_WRITE = 02
    OS_EX = 01
    OS_USER_SHIFT = 6
    OS_GROUP_SHIFT = 3
    OS_OTH_SHIFT = 0

    OS_USER_R = OS_READ << OS_USER_SHIFT
    OS_USER_W = OS_WRITE << OS_USER_SHIFT
    OS_USER_X = OS_EX << OS_USER_SHIFT
    OS_USER_RW = OS_USER_R | OS_USER_W
    OS_USER_RWX = OS_USER_RW | OS_USER_X

    OS_GROUP_R = OS_READ << OS_GROUP_SHIFT
    OS_GROUP_W = OS_WRITE << OS_GROUP_SHIFT
    OS_GROUP_X = OS_EX << OS_GROUP_SHIFT
    OS_GROUP_RW = OS_GROUP_R | OS_GROUP_W
    OS_GROUP_RWX = OS_GROUP_RW | OS_GROUP_X

    OS_OTH_R = OS_READ << OS_OTH_SHIFT
    OS_OTH_W = OS_WRITE << OS_OTH_SHIFT
    OS_OTH_X = OS_EX << OS_OTH_SHIFT
    OS_OTH_RW = OS_OTH_R | OS_OTH_W
    OS_OTH_RWX = OS_OTH_RW | OS_OTH_X

    OS_ALL_R = OS_USER_R | OS_GROUP_R | OS_OTH_R
    OS_ALL_W = OS_USER_W | OS_GROUP_W | OS_OTH_W
    OS_ALL_X = OS_USER_X | OS_GROUP_X | OS_OTH_X
    OS_ALL_RW = OS_ALL_R | OS_ALL_W
    OS_ALL_RWX = OS_ALL_RW | OS_GROUP_X
)

Cela vous permet de spécifier directement les autorisations :

dir_file_mode = os.ModeDir | (OS_USER_RWX | OS_ALL_R)
os.MkdirAll(dir_str, dir_file_mode)

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