Devido a vários motivos, estamos tentando migrar nossos servidores de arquivos do OS X Server 10.9 para uma verdadeira implementação do Samba em execução no Ubuntu 14.04LTS. Temos o Ubuntu instalado e funcionando com o Samba instalado e até mesmo temos a configuração do PAM para autenticar os usuários em relação ao nosso servidor Apple OpenDirectory.
No entanto, fazer com que o Samba autentique os usuários da maneira que queremos está se mostrando bastante desafiador. Parece que temos duas escolhas. A opção 1 é simplesmente fazer com que o Samba delegue isso ao subsistema PAM já funcional; A opção 2 é usar o suporte interno do Samba para LDAP e Kerberos. A configuração inicial do Ubuntu parece favorecer a opção 1 e, de fato, parece que essa seria a configuração mais simples para gerenciar a longo prazo. (A opção 2 requer uma tonelada a mais de configuração, incluindo modificações no esquema da Apple, o que, na minha opinião, não é uma boa ideia.)
Então, tudo dito, eu pretendo tentar fazer com que a opção 1 funcione (o que quase acontece). Atualmente, a autenticação do PAM contra o OD já funciona. Eu posso ssh e logar como usuários do OD no sistema o dia todo. No entanto, o que não é bom, é que o usuário tenha que fazer isso primeiro antes que o Samba os reconheça como um usuário do UNIX. Em outras palavras, até que o usuário se conecte com êxito via SSH pelo menos uma vez, o Samba não reconhecerá suas credenciais. Além disso, não acredito que o Samba esteja vendo os grupos OD porque tentar limitar a conectividade a determinados compartilhamentos baseados nos nomes dos grupos também não está funcionando.
Uma vez que o usuário logou uma vez usando SSH, (ou ao tentar usar uma conta de usuário local padrão) o Samba aceita seu nome e senha para sempre. Até que isso aconteça, ele simplesmente os rejeita.
O arquivo smb.conf contém estas entradas relevantes:
server role = standalone server
obey pam restrictions = yes
passdb backend = tdbsam
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
guest account = nobody
map to guest = bad user
nsswitch.conf contém estas entradas relevantes:
passwd: compat ldap
group: compat ldap
shadow: compat ldap
.
Parece que deve haver uma solução simples ou alternativa para esse comportamento de alguma forma. Usando comandos como "getent", "id", "groups" e "passwd" estão retornando corretamente os resultados e comportamentos que eu espero. Apenas smbd parece ter algo extra que precisa .
Eu não tive sorte em encontrar a melhor maneira de fazer isso, e já passei vários dias vasculhando documentação, sites, livros da O'Reilly e experimentando ambos os cenários. Também li este post semelhante aqui . Alguém já esteve nessa estrada antes? Qualquer ajuda é muito apreciada, incluindo anedotas sábias do UNIX e / ou apoio moral.
Obrigado!
Tags samba pam ldap linux opendirectory