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:
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