A mágica de perder 0011 acontece porque é o comportamento padrão do Samba.
Extrair do documento:
Create mask : The default value of this parameter removes the group and other write and execute bits from the UNIX modes
Default: create mask = 0744
Este é o link: link
Pesquise create mask (S)
Neste doc, a equipe do Samba não explica por que eles escolhem implementar esse comportamento padrão, mas para mim é fácil pensar em um mecanismo de segurança (como você mencionou).
Você pode usar a diretiva inherit permissions = yes
para que um novo arquivo herde sua permissão de pasta pai, mas isso não afetará o bit x.
Então, no seu caso, isso irá renderizar:
-rwxrw-r--. 1 vanek amikon 0 Dec 21 10:14 file.txt
Além disso, como você disse, para alterar esse comportamento, você terá que definir explicitamente sua própria máscara. Agora, a principal diferença entre "criar" e "forçar criar" é isso:
-
create mask
retira as permissões (uma máscara AND) -
force create mode
adiciona-os depois disso (uma máscara OR)
Além disso, create mask
não é capaz de lidar com x bits para grupos e outros.
Então, você pode precisar lidar com ambas as diretrizes para alcançar algumas metas.
Vamos tentar algumas amostras:
1) Se você quiser apenas o bit x para o grupo e outros, você terá que combinar:
create mask = 0700 #Remove r bit from group and others
force create mode = 0711 #Add x bit only to group and others
Resultado: -rwx--x--x 1 kris kris 0 Dec 21 14:20 file.txt
2) Se você quiser os bits rex para o grupo e outros, remova a diretiva create mask
(porque o padrão já é 0744) e apenas adicione:
;create mask = 0700 #remove r bit from group and others (commented)
force create mode = 0711 #Add x bit only to group and others
Resultado: -rwxr-xr-x 1 kris kris 0 Dec 21 14:17 file.txt
E assim por diante ...
Espero que ajude você um pouco a entender os comportamentos do Samba.