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]