Diminuindo o trabalho do suporte com o Kiosk
Aprenda a utilizar as restrições opcionais do KDE 3 para limitar as reconfigurações
A flexibilidade do Linux é reconhecida por todos os usuários experientes como um de seus maiores pontos fortes. Entretanto, a chegada aos desktops corporativos trouxe consigo um problema antigo e bem conhecido das empresas informatizadas: o número de chamadas ao suporte ou help desk aumenta na mesma proporção da quantidade de opções disponíveis aos usuários. Ou seja: quanto mais sistemas, mais dúvidas, e quanto mais opções nestes sistemas, mais chamadas ao help desk.
Existem várias formas de lidar com este problema, incluído aí o investimento na capacitação dos usuários e a ampliação da equipe de suporte. Entretanto, ao se considerar que a porta de entrada do Linux nos desktops corporativos muitas vezes está associada aos esforços de redução de custos, percebe-se a necessidade de haver suporte à alternativa mais comum: restringir as opções de configuração disponíveis para o usuário.
Historicamente, podemos apontar várias implementações desta alternativa, como as tradicionais shells restritas do Unix (inclusive o Linux) em modo texto, ou o Zero Administration Kit, feito pela Microsoft para os ambientes Windows NT. A receita é simples: restringir os comandos ou opções disponíveis nos menus do ambiente e desativar o acesso a configurações que os usuários finais não devem alterar. Naturalmente, estas restrições devem ser acompanhadas pela criação de uma configuração padrão que inclua todos os itens que os usuários possam querer utilizar, se não, poderá haver um efeito contrário: o help desk será invadido por chamadas pedindo a liberação de opções adicionais ou solicitando alterações de configuração.
A versão 3 do ambiente gráfico KDE incluiu, pela primeira vez, a restrição de configurações em ambientes corporativos: o framework Kiosk. O Kiosk permite liberar ou restringir o acesso a cada uma das opções dos arquivos de configuração do KDE e de suas aplicações, além de criar a possibilidade de restrições ao uso ou alteração de determinadas classes de recursos.
Bloqueando opções
O processo é simples, e será demonstrado de forma prática. Em primeiro lugar, localize um diretório contendo configurações do seu KDE 3: em minha máquina de testes (com o KDE 3.1.1 no SuSE Linux 8.1) as configurações globais ficam em /opt/kde3/share/config e as de cada usuário ficam em /home/USUARIO/.kde/share/config. Entre no diretório escolhido (que pode variar conforme a distribuição utilizada) e selecione um arquivo de configuração para exemplo. Faça uma cópia de segurança, se julgar necessário, e, em seguida, abra-o no seu editor de texto preferido.
Nos testes, optamos pelo arquivo /home/USUARIO/.kde/share/config/kdesktop, que contém uma série de configurações básicas do ambiente de trabalho do usuário, incluindo o protetor de tela, na seção que reproduzimos abaixo:
[ScreenSaver]
Enabled=true
Lock=false
Priority=17
Saver=atlantis.desktop
Timeout=240
Note que a palavra entre colchetes é o nome da seção e as demais opções seguem sempre o formato nome=valor. Ao mudar as opções correspondentes no Centro de Controle do KDE, este arquivo é atualizado no momento em que você clica em “Aplicar” ou em “OK”.
Para travar o valor de qualquer uma das opções, tornando-a imutável através das interfaces de configuração do KDE, basta incluir um [$i] entre o nome da opção e o sinal de igualdade. Assim, se quisermos que o usuário não possa mudar a seleção do seu protetor de tela, no exemplo acima, bastaria alterar a opção como segue:
Saver[$i]=atlantis.desktop
Após gravar o arquivo, o bloqueio já estará valendo. Experimente alterar o nome do protetor de tela no Centro de Controle: ele deverá aceitar a alteração normalmente, sem nenhuma mensagem de erro - mas a alteração não gera efeitos, uma vez que não é registrada no arquivo de configuração. Feche o Centro de Controle, abra-o de novo e você vai ver que o protetor selecionado continua sendo o mesmo que você havia travado originalmente.
A especificação do Kiosk permite travar seções inteiras, acrescentando o [$i] logo após o nome delas. No nosso exemplo, ficaria assim:
[ScreenSaver][$i]
Pode-se também travar um arquivo de configuração inteiro, acrescentando um [$i] sozinho na primeira linha dele.
Substituindo variáveis
Outra possibilidade interessante é obter no sistema os valores de configuração de qualquer opção do KDE. Pode-se utilizar a saída de programas como o valor de qualquer opção. Assim, podemos escrever um script shell chamado /usr/bin/papelparede.sh que retorne o nome da imagem a ser utilizada como fundo de tela, variando de acordo com o dia da semana, com o login do usuário ou com outro critério qualquer. Para instruir o KDE a usar a saída deste script como o papel de parede, basta localizar a opção certa - no caso, a linha Wallpaper no arquivo kdesktoprc - e incluir o nome do script entre parênteses e precedido por um $, assim:
Wallpaper=$(/usr/bin/papelparede.sh)
Pode-se também utilizar variáveis do ambiente para esta mesma funcionalidade. Assim, se você quiser que o conteúdo da variável $PAPEL_PAREDE (que pode ter sido definida no arquivo /etc/profile, por exemplo) seja utilizada como o nome da imagem de fundo, a linha é simples e direta:
Wallpaper=$PAPEL_PAREDE
Bloqueando ações
Além de travar a alteração de opções, você pode também impedir que seus usuários realizem determinadas ações no sistema e nos aplicativos do KDE. Basta incluir as ações no grupo [KDE Action Restrictions] do arquivo kdeglobals, como no exemplo abaixo:
[KDE Action Restrictions][$i]
run_command=false
action/file_open_recent=false
Este exemplo bloquearia a opção Executar comando... do menu do KDE (também acessível através da combinação Alt+F2) e todos os menus que exibem a lista dos arquivos recentemente abertos. E como descobrir quais os nomes em inglês de cada opção? Simples! Para as opções de aplicação, sempre precedidas por action/, pode-se consultar a tabela fornecida junto com o próprio KDE no arquivo ui_standards.rc (na minha máquina, ele está em /opt/kde3/share/config/ui) e, para as opções de grupo (como o run_command do exemplo), pode-se consultar a Tabela 1.
Alguns aplicativos possuem ações adicionais, e você pode descobri-las com o comando dcop nome-dcop qt objects | grep KActionCollection/ | cut -d '/' -f 3 substituindo o nome-dcop pelo dcop-id da aplicação do seu interesse. E se não souber qual é o dcop-id dela, use o comando dcop sem parâmetros, para listar os IDs de todas as aplicações em execução.
Após praticar com as configurações individuais dos usuários, parta para as experiências com as configurações centralizadas, até chegar ao seu ponto de equilíbrio - o help desk agradece! Mas não se esqueça de definir adequadamente as permissões de acesso aos arquivos de configuração, para evitar que os usuários possam alterá-los também!
Grupos de ações
Grupo |
Significado |
lock_screen |
Travamento da tela |
Logout |
Encerramento da sessão do usuário |
movable_toolbars |
Movimentação das barras de ferramentas |
run_command Opção |
“Executar comando...” e Alt+F2 |
run_desktop_files |
Execução de arquivos que não sejam ícones no desktop ou opções do menu ou barra de tarefas |
shell_access |
Acesso à linha de comando |
custom_config |
Aceitar ou não a opção --config na chamada do KDE via linha de comando |
PSM:
www.linux-mag.com/2002-11/kde_04.html
mail.kde.org/mailman/listinfo/kde-kiosk
www.kde.org
Augusto Campos - brain@matrix.com.br