Limitando sessões KDE LTSP 4.2

Publicado por Rogério Tomassoni em 31/08/2011

[ Hits: 5.031 ]

 


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

Plugin NFe 2.00 Nagios

Limpando lixeira centralizada do Samba

Suporte remoto com x11vnc

Bloqueando tráfego via MAC com iptables

Erro ao inciar sessão gráfica (status 256)

Leitura recomendada

Trancando arquivos criados VIM/VI

Bloquear Ultra Surf pelo firewall Linux

Bloqueio e mensagem na navegação sem proxy com IPTables

Baixando atualizações para seu Mandrake/Mandriva

Falha de segurança no Samba [CVE-2017-7494] - Como se proteger

  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts