Sie können direkt die Oktalnotation verwenden:
os.Mkdir("dirname", 0700)
Berechtigungsbits
+-----+---+--------------------------+
| rwx | 7 | Read, write and execute |
| rw- | 6 | Read, write |
| r-x | 5 | Read, and execute |
| r-- | 4 | Read, |
| -wx | 3 | Write and execute |
| -w- | 2 | Write |
| --x | 1 | Execute |
| --- | 0 | no permissions |
+------------------------------------+
+------------+------+-------+
| Permission | Octal| Field |
+------------+------+-------+
| rwx------ | 0700 | User |
| ---rwx--- | 0070 | Group |
| ------rwx | 0007 | Other |
+------------+------+-------+
Eine Einführung in Unix-Berechtigungen
Häufige Nutzung von Berechtigungen
0755 Wird häufig auf Webservern verwendet. Der Besitzer kann lesen, schreiben, ausführen. Alle anderen können die Datei lesen und ausführen, aber nicht ändern.
0777 Jeder kann lesen, schreiben und ausführen. Auf einem Webserver ist es nicht ratsam, die Berechtigung „777“ für Ihre Dateien und Ordner zu verwenden, da dies jedem erlaubt, bösartigen Code zu Ihrem Server hinzuzufügen.
0644 Nur der Eigentümer kann lesen und schreiben. Alle anderen können nur lesen. Niemand kann die Datei ausführen.
0655 Nur der Besitzer kann die Datei lesen und schreiben, aber nicht ausführen. Alle anderen können die Datei lesen und ausführen, aber nicht ändern.
www.maketecheasier.com/file-permissions-what-does-chmod-777-means/
Verzeichnisberechtigungen unter Linux
Beim Anwenden von Berechtigungen auf Verzeichnisse unter Linux haben die Berechtigungsbits eine andere Bedeutung als bei normalen Dateien. (Quelle)
Bit lesen Der Benutzer kann die im Verzeichnis enthaltenen Dateinamen lesen.
Bit schreiben Der Benutzer kann Dateinamen {hinzufügen, umbenennen, löschen}, WENN auch das Ausführungsbit gesetzt ist.
Bit ausführen Der Benutzer kann das Verzeichnis betreten und auf die darin enthaltenen Dateien zugreifen.
https://unix.stackexchange.com/a/21252
Berechtigungsrechner
Ein praktischer Berechtigungsrechner.
@Daniels Aussage in seiner Antwort ist nicht wirklich korrekt, und es wird auch von einer Dezimalzahl gesprochen und dann eine Oktalzahl verwendet, wie @SashaCrofter in seinem Kommentar richtig darauf hingewiesen hat.
In Wirklichkeit spielt es keine Rolle, in welcher Form Ihr Berechtigungswert ist in, solange er vernünftige Unix-Berechtigungen darstellt.
Da Berechtigungsbits auf POSIX-Dateisystemen in drei Bits vorliegen – drei Bits für den Zugriff von Eigentümern, Gruppen und anderen, plus drei Bits für Modifikatoren (wie Sticky Bits) – ist es üblich, Oktalzahlen zu verwenden, um Berechtigungen als jedes darzustellen Ziffer in einer Oktalzahl stellt einen Drei-Bit-Wert dar.
Wenn Sie also 0700 im Go-Code verwenden, wird die führende 0 entfernt und dient nur dazu, dem Parser mitzuteilen, dass er ein Oktalzahl-Literal sieht, und die folgenden drei Buchstaben stehen in dieser Reihenfolge für die Berechtigungen des Eigentümers, der Gruppe und anderer. Wenn Sie beispielsweise auch das Gruppen-Sticky-Bit setzen und das Dateisystemobjekt gruppenlesbar und ausführbar machen möchten, geben Sie 02750 an und so weiter.
Beachten Sie, dass die tatsächlichen Berechtigungen, die das Dateisystemobjekt erwirbt, weiter durch den aktiven umask
moduliert werden des Prozesses, der das Objekt erzeugt.
Um diese Themen besser in den Griff zu bekommen, lesen Sie am besten den chmod
Handbuchseiten und allgemeine Literatur zu Unix-ähnlichen Betriebssystemen.
Sie können die umask auf 0 zurücksetzen. Ich würde dies als erstes in meiner Hauptdatei aufrufen
syscall.Umask(0)
Beispiel
_ = os.MkdirAll("/tmp/dirs/1", 0664)
syscall.Umask(0)
_ = os.MkdirAll("/tmp/dirs/2", 0664)
Ergebnis
/tmp/dirs$ stat -c '%A %a %n' *
drw-r--r-- 644 1
drw-rw-r-- 664 2