LTSP 5 e LocalDevices (cdrom, floppy,pen’s usb)

No meu local de trabalho tenho instalado LTSP 5 em Ubuntu 7.04 (Gutsy). Foi uma nova instalação efectuada (descrita aqui no meu blog), onde uma das razaões para esta nova instalação foi a utilização dos LocalDevices.

No final da instalação, e antes de adicionar o LDAP para os utilizadores poderem entrar, tudo funcionava, inclusivé as PEN’s USB.

Quando adicionei os utilizadores, e como descrito no meu blog (este mesmo), era necessário adicionar os utilizadores ao grupo fuse para que pudessem montar os dispositivos amoviveis.

Ao final deste tempo todo, cheguei à conclusão que ele não os adiciona automáticamente (a primeira vez que entram na maquina) e que os dispositivos remotos não funcionam devido a um BUG no LDM.

Após muita pesquisa, resolvi o problema das PEN’s, CDROMS, floppys e já aparecem no display do utilizador. A correcção involve dois passos, servidor e terminais (chroot).

Antes de efectuar as seguintes alterações, vejam se o vosso problema é mesmo este, visitando o seguinte site e efectuando todos os passos que lá se encontram, para diagnosticar o problema:

DebugLocalDev

Se for, aqui fica como corrigir.

No servidor:

Existe um ficheiro no servidor, chamado ltspfsmounter que se encarrega de montar os dispositivos. Este ficheiro contém um bug que precisamos de corrigir.

Editar o ficheiro

vi /usr/sbin/ltspfsmounter

e comentar a linha que diz: 

env['DISPLAY'] = 'localhost:10.0' (linha 21)

passando a ficar

#env['DISPLAY'] = 'localhost:10.0'

Cliente:

Nos terminais, temos que entrar no chroot do LTSP:

(como root ou usando o sudo antes do comando)

chroot /opt/ltsp/i386

uma vez lá dentro, editamos o ficheiro S20-delayed-mounter (ou S10-delayed-mounter):

vi /usr/share/ldm/rc.d/S20-delayed-mounter

e editamos a seguinte linha:

ssh -S ${LDM_SOCKET} ${LDM_SERVER} "/usr/sbin/ltspfsmounter ${DIR} add"

adicionando o -X, ficando:

ssh -X -S ${LDM_SOCKET} ${LDM_SERVER} "/usr/sbin/ltspfsmounter ${DIR} add"

guardamos e saímos.

exit (ou Ctrl+d)

Como fizemos alterações no chroot do LTSP, temos que actualizar a imagem:

ltsp-update-image

Adicionar utilizadores ao grupo fuse

No meu caso, temos imensos utilizadores e não posso adicionar um a um. Para quem tem poucos e possa efectuar isso, nada mais simples do que o seguinte comando:

gpasswd -a <username> fuse

 No meu caso, como tenho centenas de utilizadores, mas uma vantagem: quem já entrou no sistema tem uma pasta pessoal em /home/.

Assim, basta fazer um script para ir à /home/ e a cada pasta pessoal que lá estiver (será igual ao username) e adicionar ao grupo fuse.

Os restantes, que ainda nunca entraram e possam vir a entrar, basta adicionar a seguinte linha ao ficheiro /etc/security/group.conf (além das que já foram adicionadas num post anterior neste blog, durante a instalação do LTSP):

*;*;*;Al0000-2400;users,cdrom,floppy,plugdev,audio,dip,video,fuse

Script para adicionar os utilizadores

#!/bin/bash

for i in /home/*; do
                USER=echo $i | cut -d/ -f3
                if [ $USER = "user1_to_skip" -o $USER = "user2_to_skip" ]; then
                        echo "Skipping user $i"
                        continue
                fi
                gpasswd -a $USER fuse
                if [ $? = 0 ]; then
                        echo  "$USER added with sucess"
                else
                        echo "Error adding $USER"
                fi
done;

chmod +x <nome_script>

./<nome_script>

Desta forma, conseguem adicionar todos os utilizadores já existentes (se tiverem sessão iniciada, têm que sair e voltar a entrar) e garantir que novos utilizadores sejam adicionados automáticamente ao grupo quando entrarem a primeira vez.

Referências

http://article.gmane.org/gmane.linux.terminal-server.general/22270

https://bugs.launchpad.net/ubuntu/+source/ltsp/+bug/160420

https://bugs.launchpad.net/ubuntu/+source/ltsp/+bug/158989

https://wiki.ubuntu.com/DebugLocalDev

http://wiki.ltsp.org/twiki/bin/view/Ltsp/LocalMedia

 

Leave a Reply

Your email address will not be published. Required fields are marked *