Voltar para [[Projeto Escola Livre|página do projeto]] ===== Configuração de dispositivos locais (disquete, cdrom) ===== Idéia básica: clientes LTSP iniciam com kernel linux suportando supermount e servidor samba. Durante o processo de boot, clientes lêem arquivo de configuração lts.conf, descobrem o dispositivo de disquete e CD-ROM, iniciam um servidor samba com os parâmetros de dispositivo local e disponibilizam os dispositivos via samba (por padrão, em ///tmp/drives///). Adicionalmente, quando um usuário inicia uma seção gráfica num terminal LTSP, o diretório dos dispositivos neste terminal são montados via samba pelo servidor dentro do //home// daquele usuário (por padrão, no diretório //$HOME/drives//). === Referências === Teoria básica: [[http://www.ltsp.org/localdev.txt|http://www.ltsp.org/localdev.txt]] \\ Instalação mais apurada: [[http://wiki.ltsp.org/twiki/bin/view/Ltsp/LocalMedia]] === Processo de instalação e configuração === ''Download do pacote ltsp_localdev'' \\ Fazer o //download// do pacote **ltsp_localdev** usando o script **ltspadmin**. ''Instalar o cliente samba no servidor LTSP. No debian:'' \\ $ apt-get install smbfs ''Editar lts.conf'' Editar o arquivo de configuração do LTSP lts.conf (no nosso caso, em /usr/ltsp-4.1/i386/etc/lts.conf). Aqui, habilitou-se somente o acesso local à disquete para todos os clientes (seção "[default]" do arquivo): LOCAL_DEVICE_01 = /dev/fd0:disquete **OBS.:** Caso se utilize um outro dispositivo local como CD-ROM, faça: LOCAL_DEVICE_02 = /dev/hdc:cdrom ''Montagem dos dispositivos no //home// do usuário'' \\ Até este ponto, o acesso aos dispositivos em cada terminal LTSP é possível via shell, habilitando tal acesso colocando //SCREEN_02 = shell// na seção "[default]" do lts.conf. Com esta opção habilitada, acesse o conteúdo do disquete no diretório /tmp/drives/disquete ou então via samba usando um gerenciador de arquivos (konqueror ou nautilus por exemplo) digitando smb:/nobody@/drives na barra de endereços. \\ Para facilitar o uso, o local de acesso à disquete no terminal LTSP é direcionado para o diretório pessoal do usuário logado neste terminal ("home") através dos scripts [[http://ltsp.mirrors.tds.net/pub/ltsp/ltsp-4.1/LDA-setup.sh|LDA-setup.sh]] e [[http://ltsp.mirrors.tds.net/pub/ltsp/ltsp-4.1/LDA-shutdown.sh|LDA-shutdown.sh]]. O primeiro monta o diretório dos dispositivos no home de um usuário com restrições de acesso apropriadas. O segundo script desmonta aquele diretório. \\ Estes scripts são executados pelo gerenciador de login usado (e.g., GDM ou KDM) no servidor LTSP. Verifique a página-fonte para obter informações sobre como realizar a configuração adequada para o seu gerenciador de login. \\ No GDM (caso corrente), depois de copiar os scripts para /usr/local/bin e atribuir permissões de execução, acrescentou-se as linhas: \\ /usr/local/bin/LDA-setup.sh em /etc/gdm/PostLogin/Default /usr/local/bin/LDA-shutdown.sh em /etc/gdm/PostSession/Default ''Observações:'' \\ **(a)** Nesta instalação, substituiu-se o arquivo ///usr/ltsp-4.1/i386/etc/rc.localdev// pelo arquivo //rc.localdev// contido no pacote de atualizações em: [[http://wiki.ltsp.org/twiki/pub/Ltsp/LocalMedia/localdev-4.1.1-r1.tgz]]. \\ Nesta atualização, o diretório dos dispositivos montados via samba tem permissão do usuário //nobody// ao invés do usuário //root//. \\ **(b)** Nesta solução, os diretórios são montados mais de uma vez no diretório do usuário (//home//) via samba mais de uma vez caso a sessão gráfica não se encerre normalmente executando o //logout//. Para evitar isto, uma solução simples pode ser adotada. Edite o arquivo //LDA-setup.sh// e acrescente alguma linha que verifique se o diretório já está montado, algo parecido com (verifique se as variáveis shell do exemplo abaixo correspondem ao do script! (:-)): \\ ## verificando se já está montado df | grep ${MYNAME} ISMOUNTED=$? if [ $ISMOUNTED -eq 0 ] ; then umount ${HOMEDIR}/drives #echo "`date +%c`: desmontou ${HOMEDIR}/drives" >> /tmp/debug fi Adicionalmente, crie um script para o servidor LTSP desmontar automaticamente os pontos SMB "zumbis", ou seja, que estão montados mesmo com o cliente LTSP desligado. Como sugestão, este script pode ter um conteúdo similar às seguintes linhas: !/bin/bash HOMEDIR=drives COMMAND=mount.smbfs for i in `ps -o "%a" x | grep $COMMAND | grep $HOMEDIR | cut -f2 -d " "`; do CLIENT=`echo $i | cut -f3 -d "/"` ping -q -c 1 $CLIENT > /dev/null 2>&1 if [ $? -ne 0 ]; then umount $i fi done Depois, ponha este script no crontab para executar, por exemplo, de 1 em 1 minuto: \\ 0-59/1 * * * * root