Puoi usare direttamente la notazione ottale:
os.Mkdir("dirname", 0700)
Bit di autorizzazione
+-----+---+--------------------------+
| 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 |
+------------+------+-------+
Un manuale di autorizzazione Unix
Usi comuni delle autorizzazioni
0755 Comunemente utilizzato sui server web. Il proprietario può leggere, scrivere, eseguire. Tutti gli altri possono leggere ed eseguire ma non modificare il file.
0777 Tutti possono leggere scrivere ed eseguire. Su un server Web, non è consigliabile utilizzare l'autorizzazione "777" per file e cartelle, poiché consente a chiunque di aggiungere codice dannoso al server.
0644 Solo il proprietario può leggere e scrivere. Tutti gli altri sanno solo leggere. Nessuno può eseguire il file.
0655 Solo il proprietario può leggere e scrivere, ma non eseguire il file. Tutti gli altri possono leggere ed eseguire, ma non possono modificare il file.
www.maketecheasier.com/file-permissions-what-does-chmod-777-means/
Autorizzazioni directory su Linux
Quando si applicano le autorizzazioni alle directory su Linux, i bit di autorizzazione hanno significati diversi rispetto ai file normali. (fonte)
Leggi bit L'utente può leggere i nomi dei file contenuti nella directory.
Scrivi bit L'utente può {aggiungere, rinominare, eliminare} i nomi dei file SE è impostato anche il bit di esecuzione.
Esegui bit L'utente può entrare nella directory e accedere ai file all'interno.
https://unix.stackexchange.com/a/21252
Calcolatore di autorizzazioni
Un pratico calcolatore di permessi.
L'affermazione di @Daniel nella sua risposta non è propriamente corretta, inoltre parla di un numero decimale e poi ne usa uno ottale, come ha correttamente sottolineato @SashaCrofter nel suo commento.
In realtà, non importa quale forma il tuo valore di autorizzazione è in fintanto che rappresenta le autorizzazioni Unix sensibili.
Poiché i bit di autorizzazione sui file system POSIX sono disponibili in triple di bit — tre bit per l'accesso del proprietario, del gruppo e di altri, più tre bit di modificatori (come gli sticky bit), — è consuetudine utilizzare numeri ottali per rappresentare le autorizzazioni come ogni cifra in un numero ottale rappresenta un valore di tre bit.
Quindi, quando usi 0700 nel codice Go, lo 0 iniziale viene rimosso ed è lì solo per dire al parser che vede un numero ottale letterale, e le tre lettere seguenti rappresentano il proprietario, il gruppo e altri permessi, in questo ordine. Se, ad esempio, desideri impostare anche lo sticky bit di gruppo oltre a rendere l'oggetto del file system leggibile ed eseguibile dal gruppo, dovresti specificare 02750 e così via.
Si noti che i permessi effettivi acquisiti dall'oggetto file system sono ulteriormente modulati dal umask
attivo del processo che crea l'oggetto.
Per avere più presa su questi argomenti, è meglio leggere il chmod
pagine di manuale e letteratura generale sui sistemi operativi simili a Unix.
Puoi reimpostare l'umask su 0. Lo definirei come la prima cosa nel mio file principale
syscall.Umask(0)
Esempio
_ = os.MkdirAll("/tmp/dirs/1", 0664)
syscall.Umask(0)
_ = os.MkdirAll("/tmp/dirs/2", 0664)
Risultato
/tmp/dirs$ stat -c '%A %a %n' *
drw-r--r-- 644 1
drw-rw-r-- 664 2