Configuration de sudo sans mot de passe sur les distributions Linux

18

J'ai récemment configuré les systèmes Fedora 28 et Ubuntu 18.04 et j'aimerais configurer mon compte d'utilisateur principal sur les deux afin de pouvoir exécuter des sudocommandes sans être invité à entrer un mot de passe.

Comment puis-je le faire sur les systèmes respectifs?

slm
la source

Réponses:

28

C'est assez trivial si vous utilisez le groupe Unix spécial appelé wheelsur les systèmes Fedora. Il vous suffit de faire ce qui suit:

  1. Ajoutez votre utilisateur principal au wheelgroupe

    $ sudo gpasswd -a <primary account> wheel
    
  2. Activez NOPASSWD pour le %wheelgroupe dans/etc/sudoers

    $ sudo visudo
    

    Commentez ensuite cette ligne:

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

    Et décommentez cette ligne:

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

    Enregistrez ce fichier avec Shift+ Z+ Z.

  3. Déconnectez-vous et reconnectez-vous

    REMARQUE: cette dernière étape est obligatoire pour que votre bureau et tous les shells de niveau supérieur correspondants soient réexécutés, indiquant que votre compte principal est maintenant membre du wheelgroupe Unix.

slm
la source
Qu'est-ce qui changerait si au lieu de wheelvous, vous utilisiez un autre groupe?
Giacomo Alzetta du
@GiacomoAlzetta Changez %wheelpour ce groupe.
Barmar
19

Traditionnellement sur les distributions basées sur Debian telles que Debian / Ubuntu / Mint / Kali / Antix, le groupe par défaut pour sudo est, eh bien, sudo .

Donc, pour ajouter des utilisateurs sudoactivés sans mot de passe à un système basé sur Debian, les étapes sont les suivantes:

  1. Installer sudo

    Dans Debian, selon les options d'installation, vous vous retrouvez souvent sans sudo installé par défaut.

    Si le paquet sudon'est pas installé (par exemple, vous n'en avez pas /etc/sudoers), exécutez en tant que root:

    # apt install sudo
    
  2. Ajouter l'utilisateur au groupe sudo

    Ajoutez un utilisateur au groupe sudo, s'il ne se trouve pas déjà dans le groupe sudo (Ubuntu et dérivés ajoutent automatiquement un utilisateur créé dans l'installation au groupe sudo).

    Lors de la configuration du premier utilisateur sudo, vous êtes arrivé au premier en tant que root:

    # gpasswd -a <primary account> sudo
    

    Lorsque vous avez déjà un sudoutilisateur, il est conseillé, comme bonne pratique de sécurité, de configurer les autres utilisateurs du groupe sudo via cet utilisateur:

    $ sudo gpasswd -a <primary account> sudo
    
  3. Modifier /etc/sudoerspour ajouter la directive NOPASSWD

    Vous modifiez ensuite la ligne par défaut /etc/sudoersdu sudogroupe avec:

    $ sudo visudo
    

    et changez-le de:

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

    à:

    # Allow members of group sudo to execute any command, no password
    %sudo   ALL=(ALL:ALL) NOPASSWD:ALL
    
  4. Déconnectez-vous et reconnectez-vous

    S'il est connecté au système, l'utilisateur prévu doit alors se déconnecter et se connecter pour que le changement d'utilisateur appartenant au sudogroupe prenne effet.

REMARQUE: dans Debian, le groupe wheelest souvent utilisé pour restreindre l'utilisation de PAM suà un groupe, au lieu de l'utiliser pour lesudo commande comme dans les distributions basées sur RedHat / SuSE.

Traditionnellement dans les distributions basées sur Debian, pour la sudocommande que vous utilisez le sudogroupe.

Rui F Ribeiro
la source
7

La plupart des distributions ont cette ligne dans /etc/sudoers/:

#includedir /etc/sudoers.d

Par conséquent, un moyen simple d'ajouter un utilisateur consiste à créer un fichier approprié dans le /etc/sudoers.d/répertoire; Je le nomme normalement pour l'utilisateur à ajouter:

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"
}

Vous pouvez également vouloir ajouter Defaults:%s !lecture, !authenticate\net / ou d'autres options au fichier.

Toby Speight
la source