Como posso adicionar um novo usuário como sudoer usando a linha de comando?

820

Depois de adicionar um usuário adduser, não consigo vê-lo em Sistema> Administração> Usuários e Grupos, a menos que efetue o logout e o logon novamente. Isso é normal?

Além disso, posso definir um usuário recém-adicionado como um sudoer ou preciso alterar isso somente depois de adicioná-lo? Como posso fazer isso através do shell?

Finalmente, posso excluir o usuário original que foi criado após a instalação inicial do Ubuntu ou esse usuário é de alguma forma 'especial'?

David B
fonte

Respostas:

1024

Basta adicionar o usuário ao sudogrupo :

sudo adduser <username> sudo

A alteração entrará em vigor na próxima vez que o usuário efetuar login.

Isso funciona porque /etc/sudoersestá pré-configurado para conceder permissões a todos os membros deste grupo (não é necessário fazer alterações nisso):

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

Contanto que você tenha acesso a um usuário que esteja nos mesmos grupos que o usuário "original", poderá excluir o antigo.


Realisticamente, também existem outros grupos dos quais o novo usuário deve ser membro. Se você definir o tipo de conta de um usuário como administrador nas configurações de usuários, ele será colocado em pelo menos todos esses grupos:

adm sudo lpadmin sambashare

Como a configuração do seu sistema pode variar, sugiro dar uma olhada na saída groups <username>para ver quais grupos normalmente estão em uso.

ændrük
fonte
1
@Dziamid Não sei ao certo para que sudoserve o grupo. Vamos descobrir.
Mayndrük 17/05/11
7
Observe que o admingrupo não existe no 12.04 LTS.
Ryan
18
A pergunta é sobre um usuário existente, mas se fosse para um novo usuário "sudo adduser <nome do usuário> sudo" teria que ser precedido por "sudo adduser <nome do usuário>" . Caso contrário, é exibida a mensagem de erro "O usuário <username> não existe".
Peter13
9
isso não funcionou para mim. ainda não pode usar sudo.
Chovy 31/10/2013
10
Teve que fazer login novamente para que funcionasse.
peterm
193

eu fiz

sudo usermod -a -G sudo <username>

como recomendado aqui .

Leszek
fonte
28
o grupo sudo não existe
Aaron Esau
A única solução de trabalho aqui. Ubuntu 16
Makan Tayebi
5
Para um usuário existente, esta é a solução correta. Deve ser marcado como a resposta.
Yokai
3
Não se esqueça de -asinalizar ou você removerá o usuário de todos os grupos, exceto #sudo
RousseauAlexandre
@RousseauAlexandre absolutamente! mais importante, especialmente se você está tentando adicionar-se a um grupo não-sudo e você é o único na máquina com privilégios sudo ...without -a you just removed yourself from the sudo group!
Timothy LJ Stewart
79

Abra o arquivo sudoers: sudo visudoirá abrir o /etc/sudoersarquivo no editor definido em $EDITOR(provavelmente GNU nano - defina a variável se não for o que você deseja, por exemplo, export EDITOR="nano"e tente sudo visudonovamente).

Adicione a linha abaixo ao final do arquivo.

username ALL=(ALL) ALL   # Change the user name before you issue the commands

Em seguida, execute WriteOut com Ctrl+ O. O editor solicitará o nome do arquivo para gravar. O padrão será um arquivo temporário usado visudopara verificar erros de sintaxe antes de salvar no sudoersarquivo real . Pressione Enterpara aceitá-lo. Saia do nano editor com Ctrl+ X.

Feito!

Mithun Sreedharan
fonte
9
Seria desaconselhável adicionar explicitamente um único usuário ao arquivo sudoers em vez de simplesmente adicioná-lo ao grupo apropriado sudo.
Kzqai
3
com o sudo visudo, você pode enviar para /etc/sudoers.tmp, ao sair do editor, ele substituirá o / etc / sudoers por si só #
Climbatize
1
e visudo irá verificar a sintaxe para se certificar de que não há erros
mchid
erro de sintaxe se estiver usando isso.
jheriko
2
As outras soluções funcionam muito bem para sistemas operacionais integrados sudo, mas para sistemas ocasionais sem um sudogrupo dedicado , essa solução funciona. A única recomendação que tenho é que você pode evitar se colocar sudodentro do procedimento, pois ele ainda não pode ser configurado! Fácil de solucionar, fazendo su -e simplesmente visudio. Isso funciona no Gentoo.
tresf
30

Uma coisa a acrescentar é que tenho certeza que muitas pessoas não entendem:

Depois de fazer um adduser "username", você ainda pode voltar e fazer um adduser "username" sudo, e ele adicionará esse usuário ao grupo corretamente.

Na verdade, não funcionará da primeira vez sudo adduser username sudo. Isso lhe dará um erro. O que, em resumo, significa que você deve primeiro criar a conta de usuário antes de poder adicioná-las a um grupo.

TaunT406
fonte
11

Todos os membros do grupo adminestão no Ubuntu, por padrão, autorizados a usar o sudo, portanto, a maneira mais fácil é adicionar a conta de usuário ao admingrupo.

Se você não deseja conceder acesso root completo à conta do usuário, edite o arquivo / etc / sudoer com visudo (ele garante que você não tenha nenhum erro de sintaxe no arquivo e perca totalmente o recurso sudo) de uma maneira que você especifica quais comandos esse usuário (ou um novo grupo) pode executar como raiz.

O manual do sudoer fornecerá mais informações sobre isso. Você pode especificar quais comandos são permitidos por um usuário / grupo específico a serem executados como raiz.

txwikinger
fonte
1
Eu pensei que era para isso que o wheelgrupo era?
Marco Ceppi
@ Marco Não estou familiarizado com isso. Você pode explicar um pouco mais?
ændrük
@MarcoCeppi, o grupo wheel foi usado em alguns sistemas para restringir o que os usuários poderiam usar su. Usos do Ubuntu sudoe o grupo de administradores.
Psusi
11

no CentOS, eu faço como root

echo ' username ALL=(ALL)   ALL' >> /etc/sudoers
jowan sebastian
fonte
10

O fragmento a seguir concede acesso root ao nome de usuário sem fazer login explicitamente como root.

Verifique se o usuário foi adicionado ao grupo sudo primeiro. Testado no Ubuntu 16.04.1 LTS.

sudo adduser username sudo
sudo sh -c "echo 'username ALL=NOPASSWD: ALL' >> /etc/sudoers"
Sandeep
fonte
isso funciona no Ubuntu?
Jowan sebastian
1
Sim verificado no Ubuntu 16.04
Sandeep
3
por que não em uma linha:useradd -m username --groups sudo
Aidan Melen