Outra função muito interessante onde podemos facilitar a vida de todos, uma vantagem de se trabalhar em um domínio é a possibilidade de se executar comandos nas máquinas clientes assim que faz logon no domínio. Assim é possível fazer inúmeras coisas, mas como sempre tudo depende da necessidade do administrador em questão.
Para criarmos scripts de logon é preciso utilizar a linguagem em lote (Batch Files), essa linguagem nos dá a possibilidade de realizarmos inúmeras tarefas entre o cliente e o servidor no momento do logon. Então, cai como uma luva, para nossa necessidade.
Não entrarei em detalhes sobre este tema, pois é complexo e extenso. Aqui será apresentado um script simples em lote. Se você quiser se aprimorar sobre o mesmo recomendo tutorias e e-books sobre o assunto.
Antes de criar o script em si é necessário ativar alguns parâmetros na seção [global], além de que será preciso criar um novo compartilhamento, o [netlogon]. Vamos ver como fica.
[netlogon]
comment = Serviço de Logon do Servidor
path = /home/netlogon
writable = no
browseable = no
Entendendo o que foi feito:
O logon será a abertura da sessão de trabalho na máquina cliente, onde fornecerá um login e senha, além de você poder ter uma interação com a máquina cliente assim que ela ingressar.
Parâmetros:
domain logons = valor
Definimos se haverá o sistema de logon no Samba. Valores possíveis: yes, no.
logon script = valor
Aqui definimos qual o script que será executado no cliente quando fizer logon.
Obs.: Este script deverá estar no diretório listado pelo path do compartilhamento [netlogon].
Na linguagem de lote podemos usar tanto extensões .bat como .cmd, aí vai de cada um, eu optei por usar .bat por ser compatível tanto com Win9x até WinNT.
Outra coisa é que ainda podemos em vez de usar um único script para todos as máquinas, criar scripts de usuários e de grupos, apenas usando as variáveis de substituição do Samba:
logon script = %g.bat #para grupo
logon script = %u.bat #para usuário
Voltando aos parâmetros:
logon drive = U:
Definimos a unidade de rede que conterá o homedir dos usuários. Em sistemas NT/2000/XP, só o parâmetro domains logons = yes já mapeará a unidade de rede, este parâmetro serve apenas para sistemas da série Win9x.
[1] Comentário enviado por fulllinux em 05/07/2008 - 22:17h
Aí está o tão esperado artigo... acho que valeu a cobrança heim maran, parabéns brother por mais essa conquista, um ótimo artigo como esse não é todos os dias que temos o prazer de apreciar...
Sómente após de seus excelentes artigos é que pode ver a força do samba em nossa rede. Lógico que já à configurei várias vezes mas nunca tive a oportunidade de estudar detalhes e você me proporcionou esse prazer...
Kamarada, ótimo artigo, sucesso nessa sua vida e que ela seja repleta de Linux!
[2] Comentário enviado por maran em 05/07/2008 - 22:22h
Grande Fulllinux, bom eu cobrei por achar que estava com um bom conteúdo em mãos, e se valeu isso você, e todos os outros usuários poderam me dizer... ;)
Eu que lhe agradeço , como sempre tu ta sempre ai me dando uma força, mostrado interesse, isso é muito bom, pois nos da animo pra estar sempre melhorando.
Eu acho que o Samba tem um lugar garantido em toda rede, ainda mais falando-se do que esta por vir.
Já saiu a nova versão do Samba a 3.2 que traz grandes novidades, e a quarta versão está ai, implementando o que todos querian o AD.
Bom meu velho, brigadão mesmo, um grande abraço, e muito linux em nossas vida.
[5] Comentário enviado por kalib em 06/07/2008 - 11:35h
Uia..caprichou eim brother?!?!
HUhauhauha
Bem completo este seu artigo... Com certeza se torna uma referência a quem precisa de ajuda neste sentido. Bem explicado e embasado, com certeza ajudará muita gente. ;]
[6] Comentário enviado por foguinho.peruca em 06/07/2008 - 12:04h
Olá!
Vou usar o seu artigo como guia, já que eu vou instalar o samba no trabalho. Lá, pelo menos os servidores, todos serão linux, apesar de mantermos os clientes com windows, ainda.
[11] Comentário enviado por Roque em 07/07/2008 - 14:57h
maran, brother valeu d+ pelo artigo, eu não conseguia simplesmente criar uma rede pra buscar uns arquivos no win, aí me mandaram pesquisar sobre samba, comcei lendo seu artigo meio sem esperança afinal, montar um servidor de impressão nunca foi minha idéia, mas enfim, li tudo desde o começo e não é que no final simplesmente consegui configurar a minha rede aqui! agora consigo trocar arquivos numa boa!
Me ajudou muito mesmo!
Valeu D+
Um abraço,
Roque!
[12] Comentário enviado por maran em 07/07/2008 - 16:51h
@roque, meu velho, simplesmente fiquei muito contente agora, está é minha recompensa, saber que este material ajudou em muito alguem.
Fico muito feliz mesmo, grande abraço, se precisar de alguma coisa, é so dar um toque.
[13] Comentário enviado por danueli em 27/08/2008 - 14:13h
Ola!
Desde já os parabens!
Tudo funciona Excepto uma função! :S
não sei se estou a fazer algo de errado.
"add machine script = useradd -g pdc -c "Máquina de Dominio" -s /bin/false -d /dev/null %u"
Quando vou adicionar a minha máquina no dominio, no ultimo campo de preenchimento do utilizador, password e dominio. ele nao detecta.
ja testei varias vezes e tenho a certeza que o ficheiro smb.conf nao esta a correr aquela linha do "add machine script".
[14] Comentário enviado por iarlyy em 03/09/2008 - 15:23h
Estou tendo um problema pra fazer as estacoes sincronizar a hora com o net time
no bat ta:
net time \\servidor /set /yes
ele me reclama que "o cliente não tem o privilégio necessário", a minha dúvida é: como fazer usuários não root sincronizar a hora, pois só que consegue essa sincronia são os que estão no grupo declarado no "admin users"
[19] Comentário enviado por mslackv em 17/06/2009 - 01:22h
Olá caros, boa noite!!
Estou levantando um PDC com samba, porém estou enfrentando a seguinte dificuldade para mapear unidade por grupo.
Conseguir fazer a variável logon script=%U funcionar , porém não conseguir fazer a %G
Fiz o seguinte
Com a %U, no diretório dos arquivos do script de netlogon, coloquei o arquivo [nomes dos usuários].bat e as unidades foram mapeadas nas estações clientes, mas com a variável %G, coloquei neste mesmo diretório o grupo no qual o usuário pertence [grupo].bat, e as unidades não foram mapeadas.
Creio que não esteja sabendo criar os arquivos de grupo no diretório netlogon, pois por usuário funciona.
Já verifiquei as permissões do arquivo e também criei o arquivo no bloco de notas do rwindows.
E, é possível configurar dos parâmetros de logon script no smb.con, para ser chamado duas vezes?
Queria fazer assim: que todos os usuários executassem o arquivo todos.bat e só um grupo ou usuário executassem o [grupo].bat ou [usuário].bat
Coloquei na seção global do smb.conf os parâmetro para todos.bat e [Nome do usuário].bat e não funcionou.
Havia colocado assim
logon script = todos.bat
logon script = %U.bat
Quando executo somente o todos ou somente o usuário funciona.