Como defino a política para os usuários modificarem o estado e as conexões da rede?

6

Como posso definir as permissões para os usuários fazerem alterações nas conexões e no estado da rede? Por exemplo, como posso permitir / não permitir que usuários se conectem a novas redes sem fio? Como posso permitir / não permitir que os usuários desativem a rede?

    
por HarlemSquirrel 10.12.2015 / 19:57

1 resposta

4

Você pode criar uma política local para um ou mais usuários.

Crie o documento onde as configurações vão viver ...

touch /var/lib/polkit-1/localauthority/50-local.d/10-network-manager.pkla

Adicione uma ou mais políticas ...

[Let foo modify system settings for network]
Identity=unix-user:foo
Action=org.freedesktop.NetworkManager.settings.modify.system
ResultAny=no
ResultInactive=no
ResultActive=yes

[Do not allow foo to enable/disable networking]
Identity=unix-user:foo
Action=org.freedesktop.NetworkManager.settings.enable-disable-network
ResultAny=no
ResultInactive=no
ResultActive=no

A chave é o elemento ResultActive , que pode ser definido como yes, no, auth_admin ou auth_admin_keep, onde os dois últimos exigirão a senha de outro usuário com privilégios sudo.

O elemento Action define qual ação será permitida / desaprovada ou exigirá autenticação com uma senha. Existem opções como org.freedesktop.NetworkManager.enable-disable-network para alternar a rede como ativada / desativada. Você pode ver mais opções no arquivo /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy , basta procurar por algo como <action id="org.freedesktop.NetworkManager.enable-disable-network"> e ler sua descrição.

Você também pode definir todos os valores com o curinga * ...

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

Isso exigirá uma senha para fazer QUALQUER alteração nas configurações ou estado da rede.

Você pode fazer isso em um único comando que pode ser incluído em um script ...

sudo su -c 'printf "[Prevent foo from modifying all network states and settings]\nIdentity=unix-user:foo\nAction=org.freedesktop.NetworkManager.*\nResultAny=no\nResultInactive=no\nResultActive=auth_admin" >  /var/lib/polkit-1/localauthority/50-local.d/10-network-manager.pkla'

Referências:

por HarlemSquirrel 10.12.2015 / 19:57