Estou usando o Network Manager para se conectar a uma rede sem fio segura em uma máquina de quiosque acessível publicamente.
O problema é que, se o usuário conseguir acessar a área de trabalho, o applet nm será acessado por um usuário não-root. Assim, um usuário pode simplesmente clicar com o botão direito do mouse em um ícone de bandeja, editar as configurações de conexão e ver as credenciais da rede sem fio em texto simples.
O que eu gostaria é que o applet inicie no login (como usuário não raiz) e conecte-se à Internet. Mas quando um usuário clica no ícone da bandeja, ele solicita a senha do root.
Eu não usei o Network Manager há algum tempo, mas em sistemas anteriores da RedHat, lembro-me do prompt de senha que aparece ao clicar no ícone da bandeja. Eu verifiquei os programas gksu e beesu nos repositórios do Centos, mas não os vejo. No entanto, há algum programa que faz o equivalente, porque quando clico em um programa de administração, um prompt de senha é exibido.
Então, como posso forçar um prompt de senha ao clicar no ícone da bandeja do miniaplicativo nm?
Se isso não for possível, posso fazer com que o Network Manager efetue login na rede sem a inicialização do nm-applet?
ATUALIZAÇÃO:
Gerenciado para bloquear algumas configurações usando o polkit /usr/share/polkit-1/actions/
. Quase tudo, exceto a janela Edit Connections
, parece estar listada nos arquivos relevantes do NetworkManager. Então eu só preciso descobrir qual mensagem DBus está vinculada a essa janela. Eu imaginei que seria
%código%
que está em
%código%
mas mudar isso parece não ter efeito. Alguma idéia?
Como solução alternativa, alterei as permissões do aplicativo org.freedesktop.network-manager-settings.system.modify
para 700. Assim, um usuário normal não pode editar suas próprias conexões salvas.
Outras atualizações
A solução alternativa acima impede que o usuário acesse as credenciais da rede clicando com o botão direito do mouse no ícone, mas quando a conexão atingir o tempo limite, a janela será exibida exibindo as credenciais da rede.
Portanto, ainda não há solução adequada.
Solução alternativa 2
Como não consegui impedir que o gerenciador de rede exibisse as credenciais. Abandonei-o inteiramente em favor de uma mistura de dhclient e wpa_supplicant. A rede sem fio usa o PEAP sem nenhum certificado, então eu tive que listá-lo como LEAP no wpa_supplicant.conf.
wpa_supplicant.conf
network={
ssid="mynetworkname"
scan_ssid=1
key_mgmt=WPA-EAP
eap=LEAP
identity="XXXX"
password="XXXXX"
}
Com o wpa_supplicant configurado, simplesmente:
#bring interface down
ifconfig wlan0 down
#start wpa_supplicant
wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlan0 -Dwext -B
#associate network name with interface
iwconfig wlan0 essid "mynetworkname"
#bring interface back up
ifconfig wlan0 up
#request IP
dhclient -r
dhclient -timeout 1000 wlan0