web-dev-qa-db-fra.com

Configuration de Sudo sans mot de passe sur les distributions Linux

J'ai récemment installé 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 les commandes Sudo sans être invité à entrer un mot de passe.

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

18
slm

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

  1. Ajoutez votre utilisateur principal au groupe wheel

    $ Sudo gpasswd -a <primary account> wheel
    
  2. Activez NOPASSWD pour le %wheel groupe 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 groupe Unix wheel.

28
slm

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 sans mot de passe Sudo à un système basé sur Debian, les étapes sont les suivantes:

  1. Installez Sudo

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

    Si le package Sudo n'est pas installé (par exemple, vous n'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 n'est pas déjà dans le groupe Sudo (Ubuntu et dérivés ajoutent automatiquement un utilisateur créé en 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 utilisateur Sudo, 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/sudoers pour l'ajout de la directive NOPASSWD

    Vous modifiez ensuite la ligne par défaut dans /etc/sudoers pour le groupe Sudo 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 groupe Sudo prenne effet.

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

Traditionnellement dans les distributions basées sur Debian, pour la commande Sudo, vous utilisez le groupe Sudo.

20
Rui F Ribeiro

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 ajouter Defaults:%s !lecture, !authenticate\n et/ou d'autres options du fichier.

7
Toby Speight

Alternativement, vous pouvez utiliser le package Python pudo .

Installation:

user$ Sudo -H pip3 install pudo # you can install using pip2 also

Ci-dessous est l'extrait de code à utiliser dans python automation pour exécuter des commandes sous privilège root ::

user$ python3 # or python2
>>> import pudo
>>> (ret, out) = pudo.run(('ls', '/root')) # or pudo.run('ls /root')
>>> print(ret)
>>> 0
>>> print(out)
>>> b'Desktop\nDownloads\nPictures\nMusic\n'

Voici l'exemple de cmd pour exécuter des commandes avec le privilège root

user$ pudo ls /root
Desktop  Downloads  Pictures  Music
1
Madhusudhan Kasula