Depois de um tempo, descubro essa variável global: extensões unix = off
Estou usando o ubuntu server 10 e tenho essa configuração no meu smb.conf:
[www]
comment = Web files
path = /var/www
browsable = yes
writeable = yes
create mask = 0775
directory mask = 0775
valid users = @developers
Quando conecto a máquina MAC OSX e cria um arquivo ou diretório, as permissões são definidas com 755.
Por quê?
Depois de um tempo, descubro essa variável global: extensões unix = off
Como isso funciona parece mudar dependendo se você está conectado ao compartilhamento usando uma URL "cifs: //" ou "smb: //" (ou seja, se o local que você digita na caixa de diálogo "Conectar ao servidor" do Finder começa com "cifs" ou com "smb").
Se você se conectar usando uma URL "cifs: //", o OS X tentará usar as "extensões UNIX" descritas em outras respostas aqui, e os arquivos copiados ou movidos para o compartilhamento manterão as permissões que eles tinham no unidade de origem, não importa quais são as várias configurações de máscaras de permissão / modos para o compartilhamento. Eu acho que isso é provavelmente devido a um bug no Samba (eu estou usando o 3.5.6 do Debian Squeeze - 2: 3.5.6 ~ dfsg-3squeeze8 se alguém estiver interessado).
Se, no entanto, você se conectar usando uma URL "smb: //", as extensões UNIX não serão usadas e as permissões serão ditadas pelas seguintes configurações para arquivos:
força o modo de criação, criar máscara, máscara de segurança, forçar o modo de segurança
e estes para diretórios:
força o modo de diretório, máscara de diretório, máscara de segurança de diretório, forçar o modo de segurança de diretório,
Ah, e não se esqueça:
mapa oculto, arquivo de mapas, sistema de mapas
Pode haver mais que eu tenha esquecido, mas estes são os mais comuns. Veja a manpage do smb.conf para detalhes de como todas essas configurações funcionam.
Você pode usar a configuração "unix extensions" para desabilitar todas as conexões, sejam elas feitas usando cifs: // ou smb: // URLS, para se comportar como o mais básico smb: // as conexões normalmente fazem. As vantagens de usar as extensões UNIX incluem que coisas como links (simbólicos ou hard) podem funcionar. Infelizmente esta é uma configuração global e não pode ser definida por compartilhamento (pelo menos com a versão do Samba que tenho aqui).
A "máscara de criação" significa simplesmente que os usuários do samba têm permissão para modificar essas permissões até a máscara, ou seja, se você configurá-la para 777, o usuário poderá modificar todos os bits. Isso não é o mesmo que máscaras de arquivo unix. Sua configuração é 0775, o que significa que os usuários podem modificar as permissões em Usuário (rwx), Grupo (rwx) e Outro (rw). Isso não significa que os arquivos serão criados com essas permissões, apenas que o usuário pode usar essas permissões. Para forçar um conjunto de permissões, use algo como:
security mask = 0550
force security mode = 0550
directory security mask = 0550
force directory security mode = 0550
Quais permissões você estava tentando obter?
Tags permissions samba ubuntu mac-osx