Na atualização do kernel, foi alterada a versão padrão do protocolo SMB para 3.0, que não entende as extensões Unix. Se você quiser usar extensões Unix anexar às suas opções "vers = 1.0".
Eu tenho uma caixa FreeNAS 11.0-U4 executando um compartilhamento CIFS, que normalmente acesso do meu sistema Linux por meio de uma montagem autofs. Alguns dias atrás, notei a montagem se comportando mal, exibindo todos os arquivos com permissões inúteis no estilo DOS ( rwxr-xr-x
) em vez dos bits de modo subjacentes reais.
Eu decidi experimentar manualmente. Eu corri o comando mount.cifs
:
sudo mount.cifs -o username=theuser,uid=theuser,gid=theuser //theserver/theuser /mnt
Então eu corri mount
sem argumentos para ver como era a montagem atual. Isso voltou:
//theserver/theuser on /mnt type cifs (rw,relatime,vers=3.0,cache=strict,username=theuser,domain=,uid=1000,forceuid,gid=1000,forcegid,addr=10.XX.XX.XX,file_mode=0755,dir_mode=0755,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)
Observe, em particular, a presença de nounix
(que desativa todo o suporte à extensão UNIX), file_mode
e dir_mode
, todos combinados para forçar as permissões 0755 em tudo.
Eu não estou especificando essas opções, e tenho certeza que elas não estão escondidas em um arquivo de configuração em algum lugar, então estou muito confuso sobre o motivo de elas estarem aparecendo. Esta configuração costumava funcionar - certamente bem o suficiente para arquivar arquivos no NAS sem decidir que todos os arquivos são executáveis.
No lado do Linux, mount.cifs
e os vários componentes do samba são versão 4.6.7. No lado do FreeNAS, a v11.0-U4 está executando o samba 4.6.8.
De onde vêm essas opções? Preciso ajustar algo no lado do servidor? Como posso agitar as coisas de volta à linha?
Na atualização do kernel, foi alterada a versão padrão do protocolo SMB para 3.0, que não entende as extensões Unix. Se você quiser usar extensões Unix anexar às suas opções "vers = 1.0".
Como observado na página do manual , o cifs pode ser manipulado com proc
/proc/fs/cifs
e fstab
/etc/fstab
provavelmente você quer fstab, algo assim;
//theserver/theuser /mnt cifs guest,uid=1000,iocharset=utf8,vers=1.0 0 0