Configurando sudo sem senha em distribuições Linux

18

Recentemente, configurei os sistemas Fedora 28 e Ubuntu 18.04 e gostaria de configurar minha conta de usuário principal em ambos, para que eu possa executar sudocomandos sem que seja solicitada uma senha.

Como posso fazer isso nos respectivos sistemas?

slm
fonte

Respostas:

28

Isso é bastante trivial se você usar o grupo Unix especial chamado wheelnos sistemas Fedora. Você apenas precisa fazer o seguinte:

  1. Adicione seu usuário principal ao wheelgrupo

    $ sudo gpasswd -a <primary account> wheel
    
  2. Ative NOPASSWD para o %wheelgrupo em/etc/sudoers

    $ sudo visudo
    

    Então comente esta linha:

    ## Allows people in group wheel to run all commands
    # %wheel        ALL=(ALL)       ALL
    

    E descomente esta linha:

    ## Same thing without a password
    %wheel  ALL=(ALL)       NOPASSWD: ALL
    

    Salve este arquivo com Shift+ Z+ Z.

  3. Sair e entrar novamente

    NOTA: Esta última etapa é obrigatória para que sua área de trabalho e quaisquer shells correspondentes de nível superior sejam reexecutados, mostrando que sua conta principal agora é membro do wheelgrupo Unix.

slm
fonte
O que mudaria se, em vez de wheelvocê usar qualquer outro grupo?
Giacomo Alzetta 12/09
@GiacomoAlzetta Mude %wheelpara esse grupo.
Barmar 12/09/18
19

Tradicionalmente em distribuições baseadas no Debian, como Debian / Ubuntu / Mint / Kali / Antix, o grupo padrão para o sudo é, bem sudo,.

Portanto, para adicionar sudousuários habilitados sem senha a um sistema baseado no Debian, as etapas são:

  1. Instalar sudo

    No Debian, dependendo das opções de instalação, você geralmente acaba sem ser sudoinstalado por padrão.

    Se o pacote sudonão estiver instalado (por exemplo, você não possui /etc/sudoers), execute como root:

    # apt install sudo
    
  2. Adicione o usuário ao grupo sudo

    Adicione um usuário ao grupo sudo, se ele ainda não estiver no grupo sudo (Ubuntu e derivados adicionam um usuário criado automaticamente na instalação ao grupo sudo).

    Ao configurar o primeiro usuário sudo, você chegou ao primeiro como root:

    # gpasswd -a <primary account> sudo
    

    Quando você já possui um sudousuário, é recomendável, como boa prática de segurança, configurar os outros usuários no grupo sudo por meio desse usuário:

    $ sudo gpasswd -a <primary account> sudo
    
  3. Modifique /etc/sudoerspara adicionar a diretiva NOPASSWD

    Você edita a linha padrão /etc/sudoerspara o sudogrupo com:

    $ sudo visudo
    

    e mude de:

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

    para:

    # Allow members of group sudo to execute any command, no password
    %sudo   ALL=(ALL:ALL) NOPASSWD:ALL
    
  4. Sair e entrar novamente

    Se estiver logado no sistema, o usuário pretendido sudodeverá efetuar logout e logon para que a alteração do usuário pertencente ao grupo seja efetivada.

NOTA: No Debian, o grupo wheelé freqüentemente usado para restringir no PAM o uso de suum grupo, em vez de usá-lo para o sudocomando como nas distribuições baseadas no RedHat / SuSE.

Tradicionalmente em distribuições baseadas no Debian, para o sudocomando você usa o sudogrupo.

Rui F Ribeiro
fonte
7

A maioria das distribuições tem essa linha em /etc/sudoers/:

#includedir /etc/sudoers.d

Conseqüentemente, uma maneira fácil de adicionar um usuário é criar um arquivo adequado no /etc/sudoers.d/diretório; Eu normalmente nomeio para o usuário a ser adicionado:

add_sudoer() {
    if ! test -n "$1"
    then echo "Usage: $0 <user>" >&2; return
    fi

    printf >"/etc/sudoers.d/$1" '%s    ALL= NOPASSWD: ALL\n' "$1"
}

Você também pode adicionar Defaults:%s !lecture, !authenticate\ne / ou outras opções ao arquivo.

Toby Speight
fonte