Puede usar la notación octal directamente:
os.Mkdir("dirname", 0700)
Bits de permiso
+-----+---+--------------------------+
| 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 |
+------------+------+-------+
Introducción a los permisos de Unix
Usos comunes de permisos
www.maketecheasier.com/file-permissions-what-does-chmod-777-means/
Permisos de directorio en Linux
Al aplicar permisos a directorios en Linux, los bits de permiso tienen significados diferentes a los de los archivos normales. (fuente)
Leer bit El usuario puede leer los nombres de los archivos contenidos en el directorio.
Escribir bit El usuario puede {agregar, renombrar, eliminar} nombres de archivos SI el bit de ejecución también está configurado.
Ejecutar bit El usuario puede ingresar al directorio y acceder a los archivos que contiene.
https://unix.stackexchange.com/a/21252
Calculadora de permisos
Una práctica calculadora de permisos.
La declaración de @Daniel en su respuesta no es realmente correcta, y también habla de un número decimal y luego usa uno octal, como señaló correctamente @SashaCrofter en su comentario.
En realidad, no importa qué formulario el valor de su permiso es siempre y cuando represente permisos sensibles de Unix.
Dado que los bits de permiso en los sistemas de archivos POSIX vienen en triples de bits (tres bits para acceso de propietario, grupo y otros, más tres bits de modificadores (como bits adhesivos), es habitual usar números octales para representar los permisos como cada dígito en un número octal representa un valor de tres bits.
Por lo tanto, cuando usa 0700 en el código Go, el 0 inicial se elimina y solo está allí para decirle al analizador que ve un número octal literal, y las siguientes tres letras representan los permisos de propietario, grupo y otros, en este orden. Si, por ejemplo, desea establecer también el sticky bit del grupo, además de hacer que el objeto del sistema de archivos sea legible y ejecutable para el grupo, debe especificar 02750 y así sucesivamente.
Tenga en cuenta que los permisos reales que adquiere el objeto del sistema de archivos se modulan aún más por el umask
activo del proceso que crea el objeto.
Para comprender mejor estos temas, es mejor leer el chmod
páginas de manual y literatura general sobre sistemas operativos similares a Unix.
Puede restablecer el umask a 0. Llamaría a esto como lo primero en mi archivo principal
syscall.Umask(0)
Ejemplo
_ = os.MkdirAll("/tmp/dirs/1", 0664)
syscall.Umask(0)
_ = os.MkdirAll("/tmp/dirs/2", 0664)
Resultado
/tmp/dirs$ stat -c '%A %a %n' *
drw-r--r-- 644 1
drw-rw-r-- 664 2