Heim > Backend-Entwicklung > Golang > Wie lege ich Dateiberechtigungen mit os.FileMode in Golang fest?

Wie lege ich Dateiberechtigungen mit os.FileMode in Golang fest?

Mary-Kate Olsen
Freigeben: 2024-11-11 22:26:03
Original
447 Leute haben es durchsucht

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

OS.FileMode zum Festlegen von Dateiberechtigungen verwenden

Das Erstellen von Dateien in Golang erfordert häufig die Angabe von Dateiberechtigungen mithilfe bitweiser Flags. In vielen Beispielen werden jedoch einfach numerische Berechtigungen wie 0664 verwendet, was unpraktisch sein kann.

OS.FileMode ordnungsgemäß instanziieren

Um os.FileMode ordnungsgemäß zu instanziieren, benötigen Sie Folgendes um Folgendes zu definieren:

  • Berechtigungsbits: Diese bestimmen, wer die Datei lesen, schreiben oder ausführen kann.
  • Benutzer-ID (UID) : Der Benutzer, dem die Datei gehört.
  • Gruppen-ID (GID): Die Gruppe, die die Datei besitzt.

Beispielimplementierung

Da es im Betriebssystem oder im Systemaufruf keine Konstanten für Berechtigungsbits gibt, können Sie Ihre eigenen definieren:

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
)
Nach dem Login kopieren

Dadurch können Sie Berechtigungen direkt angeben:

dir_file_mode = os.ModeDir | (OS_USER_RWX | OS_ALL_R)
os.MkdirAll(dir_str, dir_file_mode)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie lege ich Dateiberechtigungen mit os.FileMode in Golang fest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage