Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menetapkan Kebenaran Fail Menggunakan os.FileMode di Golang?

Bagaimana untuk Menetapkan Kebenaran Fail Menggunakan os.FileMode di Golang?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-11 22:26:03395semak imbas

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

Menggunakan os.FileMode untuk Menetapkan Kebenaran Fail

Mencipta fail dalam Golang selalunya melibatkan penentuan kebenaran fail menggunakan bendera bitwise. Walau bagaimanapun, banyak contoh hanya menggunakan kebenaran berangka, seperti 0664, yang boleh menyusahkan.

Membuat Instantiasi os.FileMode dengan betul

Untuk membuat instantiate os.FileMode dengan betul, anda perlu untuk mentakrifkan berikut:

  • Bit kebenaran: Ini menentukan siapa yang boleh membaca, menulis atau melaksanakan fail.
  • ID Pengguna (UID): Pengguna yang memiliki fail.
  • ID Kumpulan (GID): Kumpulan yang memiliki fail.

Contoh Pelaksanaan

Memandangkan tiada pemalar untuk bit kebenaran dalam os atau syscall, anda boleh menentukan sendiri:

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
)

Ini membolehkan anda menentukan kebenaran secara langsung:

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

Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Kebenaran Fail Menggunakan os.FileMode di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn