servidor Ubuntu + Samba + PAM + Apple OpenDirectory

3

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!

    
por quickthyme 13.11.2014 / 18:04

0 respostas