Samba: como copiar / etc / passwd para senhas do samba em novas versões do servidor ubuntu

2

Estou escrevendo um script para copiar as senhas de usuário do linux para o samba no servidor Ubuntu 10.04. Estou usando o samba 3 com o backend tdbsam.

1) Como eu (se possível) copio contas (usuário / senha) do linux para o samba usando um shell script?

2) Como eu descubro no meu script se um determinado usuário está no banco de dados do usuário do samba e tem uma senha e está ativado? Eu preciso disso como meu script é executado com mais freqüência e em execuções subseqüentes eu precisaria descobrir se o usuário já está presente. Eu não iria copiar ou definir senha ou ativar se desnecessário.

Esta é a cabeça da minha configuração:

[global]
        workgroup = WORKGROUP
        server string = %h server
        security = SHARE
        obey pam restrictions = Yes
        pam password change = no
        passdb backend = tdbsam
        unix password sync = no
        syslog = 0
        log file = /var/log/samba/log.%m
        max log size = 1000
        dns proxy = No
        panic action = /usr/share/samba/panic-action %d
        encrypt passwords = true
        invalid users = root   
        hosts allow = 192.168.0.1/24
    
por user12096 27.01.2010 / 00:18

2 respostas

0

O arquivo de senhas do samba e seus arquivos de sombra do sistema possuem esquemas de hashing diferentes. Eu acredito que nenhum deles é reversível, então não há como converter entre um e outro. A única maneira de sincronizar as senhas é no momento em que elas são alteradas, atualizando os dois arquivos simultaneamente a partir da entrada do usuário. Esse é o objetivo da configuração de sincronização de senha do Unix.

    
por 27.01.2010 / 01:48
0

Eu decidi voltar para o smbpasswd por enquanto. E decidi não sincronizar senhas. Preciso de soluções simples que funcionem aqui agora.

Esta é a cabeça da configuração agora:

[global]
         workgroup = WORKGROUP
         security = SHARE
         passdb backend = smbpasswd:/etc/samba/smbpasswd   
         unix password sync = no
         syslog = 0
         log file = /var/log/samba/log.%m
         max log size = 1000

E este é o script que será executado na instalação inicial e de tempos em tempos:

USER=samwin                           
cat /etc/samba/smbpasswd | grep -e "^$USER:" 
if [ $? -ne 0 ]; then       
  echo "Adding Samba user USER:"  
  smbpasswd -a $USER 
else               
  echo "Samba user $USER already present." 
fi

Ainda estou curioso para saber a resposta da minha pergunta acima para futuras instalações e aceito a resposta que melhor se encaixa.

    
por 27.01.2010 / 01:17

Tags