Desative a permissão sudo para o usuário na linha de comando

17

Eu tenho ativado o usuário root no Ubuntu e quero usar o Ubuntu como servidor sem DE. Para isso eu quero desabilitar o privilégio sudo dado ao primeiro usuário. Como posso fazer isso a partir da linha de comando? Eu sei que posso usar uma GUI, mas como fazê-lo a partir da linha de comando?

    
por sagarchalise 25.05.2011 / 05:50

3 respostas

13

O usuário em questão tem privilégios sudo porque está no grupo admin . Como o wojox comentou, você poderia usar visudo e remover privilégios sudo do grupo admin, mas isso removeria os recursos sudo de todos membros do grupo admin não apenas o usuário.

Como alternativa, você pode remover o usuário do grupo de administradores. Se a tela orientada vi for considerada suficiente, execute vigr e exclua o nome de usuário da linha apropriada.

Para uma solução de linha de comando "pura", tente gpasswd , pois ela administra / etc / group e pode adicionar e excluir usuários de grupos.

root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin admin sambashare
                                         # ^- the group to remove
root@toki:~# gpasswd -d username admin
Removing user username from group admin

root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin sambashare
                                        # ^- username not a member
root@toki:~# gpasswd -a username admin
Adding user username to group admin
root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin admin sambashare

Abaixo está minha primeira resposta antes de perceber que havia uma maneira menos burra de fazer isso.

Se você quiser uma maneira mais complicada de fazer isso, use usermod .

Aqui está uma citação da página usermod man:

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
    A list of supplementary groups which the user is also a member of.
    Each group is separated from the next by a comma, with no intervening
    whitespace. The groups are subject to the same restrictions as the
    group given with the -g option.

    If the user is currently a member of a group which is not listed, the
    user will be removed from the group. This behaviour can be changed via
    the -a option, which appends the user to the current supplementary group
    list.

Portanto, você precisa especificar todos os grupos para o usuário, exceto admin .

root@toki:~# id username
uid=1000(username) gid=1000(username) groups=1000(username),4(adm),20(dialout),24(cdrom),46(plugdev),111(lpadmin),119(admin),122(sambashare)

root@toki:~# usermod -G 4,20,24,46,111,122 username

root@toki:~# id username
uid=1000(username) gid=1000(username) groups=1000(username),4(adm),20(dialout),24(cdrom),46(plugdev),111(lpadmin),122(sambashare)

Por fim, isso viola o espírito da pergunta, mas é possível digitar users-admin na linha de comando para modificar usuários e grupos.

    
por Bribles 25.05.2011 / 06:52
2

Qualquer sabedoria encontrada nas respostas acima, resolvi a questão de habilitar a conta root e desabilitar o sudo para um usuário especificado da seguinte forma.

Primeiro, ative a conta root:

$ sudo passwd root

Mais informações na Documentação do Ubuntu .

Então:

  • tornar-se root
  • backup e edite o / etc / group
  • torne-se usuário novamente para testar as alterações

Isto é:

$ su
# cp /etc/group /etc/group.bak
# nano /etc/group               # find a line like 'sudo:x:27:guest', remove the
                                # user name (i.c. 'guest') and save the file
# exit,
$ [try any sudo command]

O usuário 'guest' agora é removido do arquivo sudoers. Se tudo correr bem, qualquer comando sudo deve retornar uma mensagem como esta:

guest is not in the sudoers file.  This incident will be reported.

Um convidado que faz login neste computador não pode mais mexer acidentalmente ou de bom grado com o sistema, já que você precisa ser o root para fazer isso. É claro que, se você adicionar um novo usuário, precisará repetir a edição de / etc / group.

Felicidades!

linuxrev

(Ubuntu 12.04)

    
por user171569 30.06.2013 / 22:28
1

Aviso

Cuidado, você pode se trancar do nosso sistema dessa maneira! Certifique-se sempre de que o usuário root mantém seus direitos e você pode acessá-lo. Mantenha um terminal raiz aberto de antemão para que você possa desfazer as alterações. Teste as configurações em outro terminal antes de fechar seu terminal-raiz!

soduers

Como descrito em outra resposta . Edite /etc/sudoers invocando visudo no shell:

sudo select-editor # this is optional. it will allow you to select your default editor in shell
sudo visudo

Em seguida, altere a linha que diz algo semelhante a isto:

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

para isso:

# root may gain root privileges
root ALL=(ALL) ALL

Ou exclua a linha, se tiver certeza de que sua conta de usuário root está ativada.

grupo

O usuário padrão é membro do grupo 'admin'. Se você preferir, você poderia muito bem revogar a associação de usuários para esse grupo. Faça isso seguindo meu último link ou remova o nome dele da linha admin:x:120:defaultuser em /etc/group file:

cp -n /etc/group /etc/group.bak && \
sed -i 's/\(admin:x.*\)defaultuser\(.*\)//g' /etc/group
    
por con-f-use 25.05.2011 / 11:00