On Tue, 7 Aug 2001, Marcel de Lima wrote:

> Ae lista... blz?
> 
> Tenho mandado essa questao para lista a muito tempo. E naum obtive solucao.
> O problema eh o seguinte: o SMB naum bloqueia o login apena a uma estacao
> quando aberto, ou seja, quando o usuario se loga em outra estacao, ele entra
> blzinha..
> 

Ola,
  decidi pesquisar e experimentar um pouco essa ideia de bloquear logins
multiplos. H� algum tempo j� havia pensado nesse problema.

O samba trabalha com autentica��o a nivel de servi�o, ent�o temos que
limitar o acesso multiplo a algum.
Quando em modo de emula��o NT, para que a esta��o windows consiga logar o
mesmo faz acesso ao servi�o netlogon, se o acesso for negado a esse
servi�o o logon n�o ser� efetuado.

partindo disso temos que "achar" um jeito de quando o servi�o netlogon for
solicitado o samba verifique se o usu�rio j� est� logado.

Usando o utlit�rio smbstatus podemos ver os servi�os que est�o em uso.
ex:
Samba version 2.0.9
PID     Username  Machine                       Time logged in
-------------------------------------------------------------------
19507   walter    sinter-walter                 Tue Aug  7 20:11:26 2001
19541   moleiro   moleiro                       Tue Aug  7 20:12:46 2001
19336   stivari   stivari                       Tue Aug  7 20:06:23 2001

ent�o o samba sabe que esta logado.

lendo o man page do smb.conf vemos duas op��o que podem nos ajudar, o
preexec o preexec close.
o preexec executa um comando quando o servi�o e chamado.
preexec close controla o fechamento do servi�o conforme o "exit code" do
programa invocado pelo preexec.

usando essas informa��es escrevi o seguinte shell script.
unico.sh 
#!/bin/sh
# conta quantos usuarios %U est�o logados
NC=`smbstatus -b | grep $1 | wc -l`
# o usuario est� logando, ent�o j� deve existir pelo menos 1
# se tiver mais de 1, retornar um codigo de saida diferente de 0
if [ $NC -gt 1 ]; then 
 # pode-se retornar o numero de logins fazendo EC=$NC
 EC=1
else 
 # eo primeiro login sendo realizado, ent�o retorno 0
 EC=0
fi
#usar para debug
#echo "-> $1 - $EC <-" >>/tmp/teste.log
exit $EC

e coloquei no smb.conf no servi�o netlogon ficando assim

[netlogon]
  path = /home/samba/netlogon
  browsable = no
  writeable = no
  guest ok = no
  write list = paulino
  admin users = paulino
# ideia para bloquear logins multiplos
  preexec = /etc/samba/unico.sh %U
  preexec close = yes


N�o testei exautivamento essa ideia, somente o teste "isso funciona?".


Bom, essa foi a id�ia que tive.
gostaria que o samba fize-se mais algumas coisa alem dessa, como um
controle de acesso baseado no par login maquima, algo como
valid users = paulino@micro01
 para permitir o acesso do usuario paulino somente da esta��o micro01.
tive que fazer uma limita��o de acesso basendo nisso, e o smb.conf ficou
uma coisa de maluco. O @ no samba tem um siginificado proprio.

                                                                  Paulino.
_________________________________ ________________________________________
Paulino Kenji Sato               |    Universidade Estadual de Maringa
mailto:[EMAIL PROTECTED]        |    Departamento de Fisica
http://www.dfi.uem.br/~paulino   |    Maringa Pr                Brasil
                          Linux user 56176


Assinantes em 07/08/2001: 2266
Mensagens recebidas desde 07/01/1999: 126761
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista:
            mailto:[EMAIL PROTECTED]

Responder a