Impedir que usuário "guest" (aluno) altere configurações de rede e proxy, Impedir que Desligue/Reinicie quando em multiterminal


#1

Bom dia, Feliz Ano Novo!

Estou utilizando a solução do @lbssousa (Oi-lab) juntamente com Le6, apresentando boa performance, e funcionalidade equiparadas ao userful.
Mas surgiu um problema que notei existir no já Le6 sem multiterminal o usuário “guest” (aluno em modo restrito) pode desligar a conexão de rede e alterar a configuração de proxy, desligar ou reiniciar a máquina.
Quanto desligar/reiniciar a máquina só é problema estando no multiterminal.
Mas alterar a configuração de proxy e deligar a conexão de rede é problemático em ambas situações.
Como podemos impedir este usuário de realizar estas ações?

Obrigado


#2

Bom resolvi em partes,

Para bloquear o usuário “guest” (aluno) de desconectar a placa de rede e alterar sua configuração, fiz assim:

Criar o arquivo 10-network-manager.pkla em /etc/polkit-1/localauthority/50-local.d/ com o seguinte conteúdo:
#----10-network-manager.pkla----

[Prevent foo from modifying all network states and settings except with admin password]
Identity=unix-group:alunos
Action=org.freedesktop.NetworkManager.*
ResultAny=no
ResultInactive=no
ResultActive=auth_admin_keep

#----10-network-manager.pkla----

O usuário “guest” até vai alterar a configuração de rede mas esta não será válida, ao abrir a configuração novamente lá estará a originalmente criada

Recaram a linha “Identity=unix-group:alunos” temos um grupo alunos este deve ser criado pois não é original do LE6, e por sua vez devemos alterar o arquivo /usr/sbin/guest-account responsável pela criação dos usuários convidados

Procurar a linha:

useradd --system --home-dir ${GUEST_HOME} --comment $(gettext “Guest”) --user-group --shell /bin/bash ${GUEST_USER} || {

logo após “–user-group” acrescentar “–groups alunos” ficando assim a linha:

useradd --system --home-dir ${GUEST_HOME} --comment $(gettext “Guest”) --user-group --groups alunos --shell /bin/bash ${GUEST_USER} || {

Bom isto resolveu o bloqueio da desconexão de rede mas não impede que o usuário faça alterações na configuração de proxy

Se alguém souber como fazer poderia disponibilizar aqui, Obrigado


#3

Agora a segunda parte:

Impedir que usuário “guest” (aluno) desligue/reinicie o micro

Criar um arquivo “disable-shutdown.pkla” em /etc/polkit-1/localauthority/50-local.d/ contendo:
#-------disable-shutdown.pkla-----

[Disable Shutdown, etc.]
Identity=unix-group:aluno
Action=org.freedesktop.login1.reboot-multiple-sessions;org.freedesktop.login1.power-off-multiple-sessions;org.freedesktop.login1.suspend-multiple-sessions;org.freedesktop.login1.hibernate-multiple-sessions
ResultAny=no
ResultInactive=no
ResultActive=no

#-------disable-shutdown.pkla-----

Adicione os usuários admin e professor ao grupo alunos para um melhor gerenciamento na hora de desligar.

O usuário guest (aluno) poderá desligar/reiniciar o micro se mais ninguém estiver logado (multiterminal), para ter acesso a esta funcionalidade deverá utilizar-se de um script pois o menu não mais exibe o botão de desligar/reiniciar.

Somente o professor verá este botão se nenhum outro usuário estiver logado.

Exemplo de script para desligar/reiniciar:

#----AlunoDesligar.sh--------

#!/bin/bash

#Desenvolvido por Ricardo Luis Madiuto
#20/12/2017

Logout(){
gnome-session-quit --logout
}

Desligar(){
qt_logados=$(who | cut -d’ ’ -f1|sort -u|wc -l)
if [ $qt_logados -eq 1 ];then
gnome-session-quit --power-off --force
else
erro_msg
fi
}

Reiniciar(){
qt_logados=$(who | cut -d’ ’ -f1|sort -u|wc -l)
if [ $qt_logados -eq 1 ];then
gnome-session-quit --reboot
else
erro_msg
fi
}

erro_msg(){
yad --center --on-top --title=“Erro!!!”
–image=’/usr/share/icons/system-shutdown.png’
–text-align=center
–text="\n\nNão Posso Continuar! \nExiste mais usuários logados! "
–width 400
–height 200
–button=“Ok”
}

menu(){ yad
–window-icon=’/usr/share/icons/system-shutdown.png’
–timeout=15
–timeout-indicator=bottom
–center
–dialog-sep
–borders=2
–title=“Encerrar Seção”
–form
–image=’/usr/share/icons/system-shutdown.png’
–field=’’:LBL ‘’
–field=‘Logout’:BTN “$0 Logout”
–field=’’:LBL ‘’
–field=‘Reiniciar!’:BTN “$0 Reiniciar”
–field=’’:LBL ‘’
–field=‘Desligar!’:BTN “$0 Desligar”
–width 400
–height 200
–button=“Sair”:3
}

case $1 in
’Desligar’) Desligar
;;
‘Reiniciar’) Reiniciar
;;
‘Logout’) Logout
;;
*) menu
;;
esac

exit 0

#----AlunoDesligar.sh--------

Salve em /usr/bin/AlunoDesligar.sh

Neste script foi utilizado o yad (Yet another dialoging program) que deverá ser instalado.
O icone /usr/share/icons/system-shutdown.png não existe originalmente no LE6, podendo ser substituído por outro.


#4

Bom dia!
O Multiterminal não permitirá que o usuário Aluno (guest) tenha acesso a serviços como desligar a máquina e desabilitar a rede.
Muito obrigada pela participação e contribuição com nossa solução!