Remova a senha sudo ao conectar-se à * nova * rede WiFi

12

Atualmente, quando meu usuário não administrador tenta se conectar a uma nova rede WiFi (por exemplo, em uma cafeteria), o NetworkManager solicita a senha do usuário administrador. Existe uma maneira de desativar isso e permitir que o usuário não administrador se conecte à rede Wifi de que gosta?

EDIT: apenas para esclarecer, eu realmente quero dizer uma nova rede WiFi nunca conectada anteriormente pelo computador, portanto, clicar em 'Disponível para todos os usuários' em uma conexão estabelecida existente não resolverá o problema - já que atualmente não há problema com o usuário não administrador reconectar quantas vezes quiserem à rede doméstica.

fpghost
fonte
/etc/sudoersé o arquivo a ser editado para não solicitar senhas: help.ubuntu.com/community/Sudoers
Rinzwind
Eu usei visudoantes para permitir que o usuário não administrador faça algumas coisas (como sudo apt-get upatepor exemplo), mas não tenho certeza do que teria que colocar lá para impedir que eles solicitem uma senha para se conectar a uma nova rede wifi
Fpghost
ha você me pegou lá. Eu teria feito uma resposta se eu sabia que a partir da memória (à procura de um pouco, mas não o encontrou ainda: D)
Rinzwind
Sim, deve ser algo da forma someUser ALL=(root)NOPASSWD:/path/to/somethingControllingWiFique presumo, se esse é realmente o caminho a percorrer.
Fpghost
Com certeza é :) ..
Rinzwind 18/01/13

Respostas:

14

Encontrei sucesso com a seguinte solução no Ubuntu 13.04:

Abra /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policycom privilégios root / sudo e procure a seguinte linha:

<message>System policy prevents modification of network settings for all users</message>

Algumas linhas abaixo devem ser as seguintes:

<allow_active>auth_admin_keep</allow_active>

Altere para:

<allow_active>yes</allow_active>

Salve o arquivo e reinicie o seu computador.

Kyle Spencer
fonte
veja a resposta respondida por @harlemsquirrel abaixo, será muito mais fácil compactar a permissão dentro, por exemplo, um pacote deb. Além disso, a abordagem acima é suscetível de ser redefinida por atualizações, etc, porque você está editando um arquivo gerenciado pelo dpkg.
vidstige 29/08/19
1
Conselho sólido, mas você deve apenas reiniciar a rede via reinicialização do gerenciador de rede do serviço sudo.
vise
4

Como resolver o erro: A diretiva do sistema impede a modificação das configurações de rede para todos os usuários

Há uma etapa crítica ausente na resposta acima, por isso estou incluindo aqui. :)

Isso funciona no Ubuntu 14.04 LTS e 16.04 LTS

  1. Terminal Aberto

  2. su para fazer root

    su -
    
  3. Digite o seguinte:

    nano /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
    
  4. No final do arquivo, localize a seção rotulada:

    <action id="org.freedesktop.NetworkManager.settings.modify.system">
    
  5. Na parte inferior da seção org.freedesktop.NetworkManager.settings.modify.system , localize a seguinte linha de código:

    <allow_active>auth_admin_keep</allow_active>
    
  6. Mude esta linha para ler da seguinte maneira:

    <allow_active>yes</allow_active>
    
  7. Salve o arquivo usando:

    ^X
    
  8. Resposta "Salvar buffer modificado (RESPOSTA" Não "DESTRUIRÁ ALTERAÇÕES)?" por Typing :

    Y
    
  9. Pressione Enter quando solicitado com:

    File Name to Write: /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
    
  10. Reinicie .

:)

bu11etpr00f
fonte
3

Você também pode criar uma política local para esse

[Deixe o aluno modificar as configurações do sistema para a rede]
Identidade = usuário unix: aluno
Ação = org.freedesktop.NetworkManager.settings.modify.system
ResultAny = no
ResultInactive = no
ResultActive = yes

em um arquivo chamado /etc/polkit-1/localauthority/50-local.d/10-network-manager.pkla.

A vantagem aqui é que isso pode ser um único comando e utilizável em um script!

printf "[Deixe o aluno alterar as configurações do sistema para a rede] \ nIdentidade = usuário unix: aluno \ nAção = org.freedesktop.NetworkManager.settings.modify.system \ nResultAny = não \ nResultInactive = não \ nResultActive = yes" | sudo tee /etc/polkit-1/localauthority/50-local.d/10-network-manager.pkla

Referência: Ubuntu Manpage: pklocalauthority

HarlemSquirrel
fonte
esta é a solução correta
vidstige
2

Esta não é realmente a correção que eu esperava, mas uma solução alternativa que encontrei é apenas desabilitar NetworkManagertudo junto e usar Wicd.

Primeira parada NetworkManagerda execução na inicialização:

sudo gedit /etc/NetworkManager/NetworkManager.conf

então # fora da managedlinha. Também # fora #start on (local-filesystems and started dbus)de /etc/init/network-manager.conf. Então, só para ter certeza de que

sudo mv /etc/init/network-manager.conf /etc/init/network-manager.conf-disabled
sudo mv /etc/xdg/autostart/nm-applet.desktop /etc/xdg/autostart /nm-applet.desktop.disabled  

Agora você pode simplesmente usar Wicde nenhuma solicitação de senha é necessária.

fpghost
fonte
0

Você pode editar os arquivos de configuração do sistema, mas isso é força bruta. Primeiro de tudo, como uma regra de ouro, reside configuração sob /etc, não /usrou /varou em qualquer outro lugar. O HarlemSquirrel explicou como fazer uma alteração adequada na política padrão. A edição de arquivos abaixo /usré garantida para aparecer mais cedo ou mais tarde, pois esses arquivos são fornecidos pelos pacotes do sistema, que serão atualizados / substituídos eventualmente.

Mas o maior problema é que essas mudanças são completamente desnecessárias, a partir de 18.04, pelo menos. Esse é um problema "você está entendendo errado". Na verdade, é um problema de usabilidade por parte do miniaplicativo NM, mas de qualquer maneira. Dê uma olhada em /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy:

  <action id="org.freedesktop.NetworkManager.settings.modify.system">
    <description>Modify network connections for all users</description>
    <defaults>
      <allow_any>auth_admin_keep</allow_any>
      <allow_inactive>auth_admin_keep</allow_inactive>
      <allow_active>auth_admin_keep</allow_active>
    </defaults>
  </action>

Significando que os usuários não podem criar conexões, certo? Errado! Olhar mais longe:

  <action id="org.freedesktop.NetworkManager.settings.modify.own">
    <description>Modify personal network connections</description>
    <defaults>
      <allow_any>auth_self_keep</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>

Como você pode ver, o NetworkManager suporta o conceito de conexões de usuário e sistema. O problema é que o applet cria conexões do sistema por padrão. Portanto, quando você abre o miniaplicativo na bandeja e clica em Selecionar rede e , em seguida, selecione aquele ao qual deseja se conectar, ele solicita um usuário sudo, porque a criação de conexões do sistema é permitida apenas para administradores.

MAS, se você abrir o aplicativo Configurações , acessar Wi-Fi e clicar na rede desejada, ele permitirá que você se conecte facilmente sem a senha de administrador. Caminhar no parque.

Por que o applet deseja criar conexões do sistema por padrão está além de mim, especialmente porque você pode tornar uma conexão de usuário um sistema a qualquer momento depois. É a opção Disponibilizar para outros usuários nas propriedades da conexão e, quando você verificar e clicar em Aplicar , solicitará imediatamente a senha do sudo, como deveria. Tentarei encontrar uma maneira de fazer o applet criar conexões de usuário por padrão; atualizarei esta resposta se descobrir isso.

bviktor
fonte