Alterar usuário padrão para autenticação

3

Quando eu tento executar certas ações no ubuntu, sou solicitado a autenticar com um usuário root, mas o ubuntu não me dá opções para qual usuário root, ele apenas o especifica como o usuário que configurou minha máquina. Eu queria saber como mudar o usuário que ele seleciona para executar a autenticação?

Por exemplo, se eu quiser instalar o software do Ubuntu Software Center, sou solicitado a autenticar com o usuário X e gostaria de mudar isso para ser o usuário Y globalmente.

Também estou ciente de que posso simplesmente executar coisas com o sudo a partir da linha de comando, mas não quero fazer isso.

Estou usando o Ubuntu 14.04. E o usuário Y está no arquivo sudoers e, a partir de agora, o usuário X não está.

    
por aplassard 27.10.2014 / 19:03

3 respostas

11

Já há algum tempo, sudoers não tem sido a única maneira de controlar os privilégios de usuário no Ubuntu e em outras distribuições Linux. O Polkit permite um controle mais refinado dos privilégios. Quando você usa o GParted ou o Synaptic em uma versão recente do Ubuntu, a autenticação geralmente é feita usando o polkit.

Para definir um usuário (digamos, Y ) como administrador do polkit, crie um arquivo em /etc/polkit-1/localauthority.conf.d/ (digamos, 99-custom.conf ), contendo:

[Configuration]
AdminIdentities=unix-user:Y

Você pode testar se isso foi aplicado corretamente usando pkexec as Y :

$ pkexec bash -l
==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authentication is needed to run '/bin/bash' as the super user
Authenticating as: muru,,, (muru)
Password: 
==== AUTHENTICATION COMPLETE ===

Como você já tem um usuário administrador, será oferecida uma opção por pkexec :

$ pkexec bash
==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authentication is needed to run '/bin/bash' as the super user
Multiple identities can be used for authentication:
 1.  X,,, (Y)
 2.  Y,,, (X)
Choose identity to authenticate as (1-2): 

A GUI deve oferecer uma lista suspensa.

    
por muru 27.10.2014 / 20:28
2

Não existe usuário padrão para autenticação. É só que, por padrão, o usuário criado durante a instalação do Ubuntu (no seu caso, X ) é um administrador, ou seja, é anexado ao grupo sudo. Então, quando você está executando tarefas elevadas, como a instalação de softwares, é solicitada a senha do usuário no grupo sudo.

Agora, quando você adiciona um novo usuário Y , ele é, por padrão, um usuário padrão e precisa ser adicionado manualmente ao grupo sudo ou, em termos gerais, fez um administrador instalar aplicativos. Depois que o usuário for adicionado ao grupo sudo, você será solicitado a digitar a senha do usuário Y ao executar tarefas elevadas (quando conectado como Y obviamente).

    
por astrob0t 27.10.2014 / 19:28
1

TL; DR: Adicionando o usuário ao grupo sudo com sudo usermod -aG sudo username resolve este problema porque ambos sudo e Polkit usam esse grupo.

A maneira usual e esperada de dar poderes administrativos ao usuário em um sistema Ubuntu é adicionar a conta do usuário ao grupo sudo . Isso lhes dá poderes não apenas através do sudo, mas também através do Polkit. O prompt gráfico que permite selecionar entre usuários com poderes administrativos é um prompt do Polkit, não um prompt do sudo. Como diz muru , a maioria dos programas gráficos que solicitam que você digite uma senha para realizar uma tarefa administrativa estão usando o Polkit, não sudo

Mas, para tornar um usuário um administrador, para permitir que eles executem ações como root com sudo e Polkit e para que eles apareçam na lista de usuários a serem autenticados como ao usar o Polkit, você não precisa configurar o sudo e o Polkit separadamente e eu recomendo que não faça isso. Basta colocar o usuário no grupo sudo . Não se deixe enganar pelo nome - Polkit respeita esse grupo da mesma maneira que o sudo.

O texto da sua pergunta sugere strongmente que, em vez de adicionar o usuário ao grupo Polkit, você adicionou uma entrada personalizada para esse usuário específico em /etc/sudoers :

% bl0ck_qu0te%

O usuário criado quando você instala o Ubuntu é adicionado ao grupo sudo .

E você mencionou (ênfase minha):

% bl0ck_qu0te%

O Polkit não usa /etc/sudoers , portanto, dar ao usuário a capacidade de executar sudo editando esse arquivo não lhes dá habilidades através do Polkit. Essa é uma possível razão pela qual você pode realmente querer editar esse arquivo - se você quisesse dar ao usuário poderes através de sudo mas não do Polkit. No entanto, você quer ambos, e é para isso que o grupo sudo no Ubuntu já está configurado, então você deve usar isso.

Como você faz tem a capacidade de executar comandos como root com o comando sudo, você pode adicionar username (substitua-o pelo nome de usuário real, é claro) para o grupo sudo executando:

sudo usermod -aG sudo username

Ou se você quiser usar o Polkit para adicioná-lo, você pode executar este comando, que tem exatamente o mesmo efeito quando for concluído:

pkexec usermod -aG sudo username

Depois de executar qualquer um desses comandos, username poderá realizar ações arbitrárias como raiz através do sudo e do Polkit. Observe que usermod precisa do -a flag, conforme mostrado, ou removerá o usuário de outros grupos, o que você não deseja.

Veja também Como adicionar um usuário existente a um grupo existente

Caso você esteja interessado em como tanto o sudo quanto o Polkit estão configurados para conceder direitos aos usuários no grupo sudo , a resposta pode ser obtida de seus arquivos de configuração. Por padrão, /etc/sudoers inclui estas linhas:

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

/etc/polkit-1/localauthority.conf.d/51-ubuntu-admin.conf consiste em:

[Configuration]
AdminIdentities=unix-group:sudo;unix-group:admin

Assim, o sudo e o Polkit são configurados para conceder privilégios administrativos aos usuários que estão em um ou ambos os grupos admin e sudo . O grupo admin está listado para compatibilidade com versões antigas do Ubuntu em que admin foi usado em vez de sudo , caso você faça upgrade de tal versão e tenha contas de usuário em admin , mas não sudo . Mas, além dessa situação, você provavelmente nem tem um grupo admin . A execução de getent group admin sudo mostrará qual desses grupos existe e quais usuários estão neles. Em um sistema 14.04 recém-instalado, ele não mostrará nada para admin . Portanto, use o grupo sudo , não o grupo admin , para tornar os usuários administradores.

Estes detalhes de configuração são verdadeiros para o Ubuntu 14.04, como você estava executando quando fez esta pergunta, mas também de todos os lançamentos subseqüentes, até o Ubuntu 17.10. Adicionar um usuário ao grupo sudo é a maneira mais eficaz e mais apropriada de fornecer a eles poderes sudo e Polkit completos, em todos os lançamentos do Ubuntu atualmente suportados.

Eu gostaria de agradecer Videonauth ambos pelo comentário útil sobre outra resposta (que desde então tem sido delete) que levou à minha escrita desta resposta e para verificar se as informações que eu dei sobre o conteúdo de sudoers e 51-ubuntu-admin.conf ainda são precisas a partir do Ubuntu 17.10.

    
por Eliah Kagan 01.11.2017 / 22:02