Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: screenshot do Ubuntu
Por wavemmx
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Limitando sessões KDE LTSP 4.2
Linux user
Publicado por Rogério Tomassoni em 31/08/2011

Login: tomassoni, 396737 pontos
[ Hits: 1441 ]

Limitando sessões KDE LTSP 4.2

Após ter dificuldades com número de sessões por usuário no LTSP 4.2, decidi fazer uma solução paleativa para limitar o número máximo de sessões abertas por usuário no KDE, usando o KDM.

A solução foi criar um script que é executado quando o usuário faz login, ele deve ficar dentro de "/usr/share/xsessions", aqui ficam os arquivos referentes a sessões disponíveis no seu ambiente.

Vamos criar um novo arquivo chamado "kdeLimitUser.desktop" com o seguinte conteúdo:

[Desktop Entry]
Encoding=UTF-8
Type=XSession
Exec=/home/scripts/limitUserKde.sh
TryExec=/home/scripts/limitUserKde.sh
Name=KDE
Name[xh]=iKDE
Comment=The K Desktop Environment, a powerful Open Source graphical desktop environment
Comment[pt_BR]=Acrónimo para K Desktop Environment (ou Ambiente de Trabalho K), um poderoso ambiente de trabalho gráfico

Note os parâmetros "Exec" e "TryExec", eles deverão apontar para o script que fará o controle. Vamos então criar este script, o local pode ser escolhido a vontade, desde que ele tenha as permissões de execução para todos usuários (chmod 0755 limitUserKde.sh).

#!/bin/bash

# Scripts que limita o numero de sessões abertas por usuário no kde
# Script roda junto com o xsession /usr/share/xsessions/kdeLimitUser.desktop
# ele deve ser configurado no arquivo .dmrc no diretório do usuário.

# Numero máximo de sessões por usuário
NUMERO_MAX_SESSION_KDE=1

# Usuários sem restrição
USUARIOS_SEM_RESTRICAO="root"

# Função que envia notificação via netsend (Mensageiro do Windows deve estar ativo)
# Aqui poderia ser usado Jabber, e-mail entre outros meios.
notifica_limite_sessao (){

   MSG="O usuário $USER esta tentando logar em mais de $NUMERO_MAX_SESSION_KDE sessões do KDE. "
   #Rogerio
   echo $MSG | smbclient -M sistema02 -I 10.1.5.50 -U "Limite de sessões KDE."
  
}


# Testa se e usuário sem restrição, essa opção só sera válida se todos usuários
# tiverem dentro do /home/.dmrc setado para usar kdeLimitUser.desktop, caso contrario
# sera valido o que estiver configurado.
for semLimit in $USUARIOS_SEM_RESTRICAO ; do
   if [ $USER == $semLimit ]; then
      #startkde
      #echo "Sem restricao"
      exit 0;  
   fi
done

# Verifica o numero de sessões abertas, permite ou não uma nova sessão

NRO_SESSION_USER=$(ps -fu $USER | grep -v grep | grep -wi "/bin/sh /usr/bin/startkde" | wc -l)

if [[ $NRO_SESSION_USER -eq $NUMERO_MAX_SESSION_KDE || $NRO_SESSION_USER -gt $NUMERO_MAX_SESSION_KDE ]]; then
  #startkde
   echo "-> Limite atingido"
   notifica_limite_sessao
   exit 0;
elif [ $NRO_SESSION_USER -lt $NUMERO_MAX_SESSION_KDE ]; then
  # Caso o numero de sessões não tenha sido atingido inicia o KDE
        startkde
   exit 0;
fi

exit 0

Após criado, o arquivo .dmrc dentro do home de cada usuário deve ser alterado para chamar nosso verificador, logo o conteúdo do arquivo .dmrc deve ficar assim:

[Desktop]
Session=kdeLimitUser

Essa solução funcionou no meu ambiente, fica ai a sugestão. Lembrando que limita as sessões do KDE e não do terminal, para limitar o terminal use o "lts.conf" e "/etc/profile".

E também tem a brecha que se o usuário, troca a sessão pelas opções da tela de login, ou alterar o conteúdo do .dmrc, ou remover esse arquivo e ele for criado de novo como o padrão, a sessão deixa de ser controlada, e passa a valer o que estiver dentro do .dmrc.

Vale a pena remover as opções referente as sessões da janela de login, para remover exclua os arquivos do diretório "/usr/share/xsessions/" deixando apenas o referente ao KDE, para quem usa gdm, alterar "/usr/share/gdm/BuiltInSessions/default.desktop" o paramentro exec.

Verifique o "/etc/X11/xinit/Xclients" para alterar a sessão default e também deixar o .dmrc correto dentro do "/etc/skell" para que cada usuário novo criado, seja adicionado o .dmrc correto para ele.


Outras dicas deste autor

Leitura recomendada
   Dica Linux recomendada IPCop Firewall de rede grátis
   Dica Linux recomendada Antivírus avast no Linux
   Dica Linux recomendada Configure seu firewall via web (Iptables On-Line)
   Dica Linux recomendada Testando seu firewall com scan remoto via internet
   Dica Linux recomendada A importância de rastrear comandos com o HISTFILE

Comentários
[1] Comentário enviado por julio_hoffimann em 31/08/2011 - 19:40h:

Oi Rogério,

Apesar de eu não trabalhar com esse tipo de atividade, é uma ótima dica. Parabéns!

Abraço!

[2] Comentário enviado por tomassoni em 31/08/2011 - 21:38h:

Obrigado Júlio.

[3] Comentário enviado por tomassoni em 17/01/2012 - 20:07h:

Pessoal lembrando que usar o limits.conf também ajuda.


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.