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

18

Eu ativei o usuário root no ubuntu e quero usar o ubuntu como servidor sem DE. Para isso, quero desativar o privilégio sudo concedido ao primeiro usuário. Como posso fazer isso na linha de comando? Eu sei que posso usar uma GUI, mas como fazê-lo na linha de comando?

sagarchalise
fonte
Dependendo de como você configurar seus grupos, digite visudo
wojox

Respostas:

14

O usuário em questão possui privilégios de sudo porque está no admingrupo. Como a wojox comentou, você pode usar visudoe remover privilégios de sudo do grupo de administradores, mas isso removeria os recursos do sudo de todos os membros do grupo de administradores e não apenas de um usuário.

Como alternativa, você pode remover o usuário do grupo de administradores. Se a tela orientada vifor considerada uma linha de comando suficiente, execute vigre exclua o nome de usuário da linha apropriada.

Para uma solução de linha de comando "pura", tente gpasswd, pois administra o / 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 que eu percebesse que havia uma maneira menos burra de fazê-lo.

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

Aqui está uma citação da usermodpágina de manual:

-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.

Então você deve 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, viola o espírito da pergunta, mas é possível digitar users-adminna linha de comando para modificar usuários e grupos.

Subornos
fonte
Parece que o grupo para remover on preciso agora é sudovez
Joril
2

Qualquer que seja a sabedoria encontrada nas respostas acima, resolvi o problema de habilitar a conta root e desabilitar o sudo para um usuário especificado da seguinte maneira.

Primeiro ative a conta raiz:

$ sudo passwd root

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

Então:

  • tornar-se raiz
  • faça backup e edite / etc / group
  • tornar-se usuário novamente para testar as alterações

Isso é:

$ 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 'convidado' agora é removido do arquivo sudoers. Se tudo der certo, 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 acidental ou voluntariamente com o sistema, pois você precisa ser root para fazê-lo. Obviamente, se você adicionar um novo usuário, precisará repetir a edição do / etc / group.

Felicidades!

- linuxrev

(Ubuntu 12.04)

user171569
fonte
1

Atenção

Cuidado, você pode sair do nosso sistema dessa maneira! Sempre verifique se o usuário root mantém seus direitos e você pode acessá-lo. Mantenha um terminal raiz aberto previamente para poder desfazer as alterações. Teste as configurações em outro terminal antes de fechar seu terminal raiz!

refrigerantes

Conforme descrito em outra resposta . Edite /etc/sudoerschamando 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 este:

# 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, sua conta de usuário raiz está ativada.

grupo

O usuário padrão é membro do grupo 'admin'. Se preferir, você também pode revogar a associação de usuários a esse grupo. Faça isso seguindo meu último link ou remova o nome dele da linha admin:x:120:defaultuserno /etc/grouparquivo:

cp -n /etc/group /etc/group.bak && \
sed -i 's/\(admin:x.*\)defaultuser\(.*\)/\1\2/g' /etc/group
confundir
fonte
11
@psusi: Não, você está errado. Ele pode excluí-lo. Como ele disse: "Ativei o usuário root no ubuntu", ele pode SEMPRE CONECTAR COMO USUÁRIO RAIZ PARA GANHAR ACESSO. Corrija seu voto negativo da minha postagem.
con-f-use