Faça com que um servidor de arquivos do Linux seja autenticado no Active Directory. É possível criar automaticamente o diretório pessoal de um usuário?

3

Eu tenho uma caixa do Debian autenticando em nosso Active Directory e está funcionando bem. Atualmente, somente os usuários que efetuaram login no servidor via SSH (em relação ao AD) têm um diretório que podem acessar por meio do SMB. O diretório é criado quando o usuário registra via SSH. É possível que um usuário faça o login via SMB e o diretório é criado automaticamente?

Aqui está o meu arquivo de sessão comum do meu diretório pam.d:

session    required    pam_mkhomedir.so skel=/etc/skel/ umask=0066
session    sufficient    pam_winbind.so
session required    pam_unix.so
    
por jeffkolez 21.10.2010 / 18:04

3 respostas

4

É possível. Para fazer isso, você precisa adicionar uma linha à sua configuração de compartilhamento no Samba e criar um script.

[homedirs]
    path = /srv/homes
    comment = User home-directories
    root preexec = /usr/local/sbin/mksmbhome

O arquivo 'mksmbhome' é um script de shell que será executado toda vez que um usuário se conectar a esse compartilhamento. Ele deve testar a existência de um diretório inicial e, se não estiver presente, criar um com os diretórios e arquivos necessários.

Doc: link seção 6.6.4.1

    
por 21.10.2010 / 18:13
1

Alternativa à solução sysadmin1138, é adicionar à sua configuração de smb.conf a seguir:

[global]
...
obey pam restrictions = yes

Se seus usuários já podem fazer login usando SSH, essa é a única coisa que você precisa fazer. Caso contrário, você precisa garantir que os usuários estejam visíveis usando getent passwd .

    
por 10.02.2012 / 01:21
0

Usar um script como /usr/local/sbin/mksmbhome pode ser excessivamente complicado, especialmente com bugs como o uso de %U , que pode retornar um valor falso. ( smb.conf (5) : "nome de usuário da sessão (o nome de usuário que o cliente queria, não necessariamente o mesmo que o que eles obtiveram) ").

Ao usar sssd no Debian, usar o componente PAM mkhomedir_helper com a variável %u (minúscula, "nome de usuário do serviço atual, se houver") funciona sem implementar um script próprio:

root preexec = mkhomedir_helper "%u"
    
por 07.09.2016 / 16:41