Créer un nouvel utilisateur avec les mêmes droits que pi

Par défaut, lorsqu'on crée un nouvel utilisateur sur Rasbian, celui-ci ne possède que quelques droits restreints. Pourtant, il peut être utile de créer ce nouvel utilisateur avec les mêmes privilèges que l'utilisateur pi, notamment ceux relatifs à l'utilisation du mode super utilisateur avec la commande sudo.

Créer un nouvel utilisateur

Sous Linux, la création d'un utilisateur se fait avec la commande adduser.
pi@raspi01:~ $ sudo adduser apl
Ajout de l'utilisateur « apl » ...
Ajout du nouveau groupe « apl » (1001) ...
Ajout du nouvel utilisateur « apl » (1001) avec le groupe « apl » ...
Création du répertoire personnel « /home/apl »...
Copie des fichiers depuis « /etc/skel »...
Nouveau mot de passe : *****
Retapez le nouveau mot de passe :*****
passwd: password updated successfully
Changing the user information for apl
Enter the new value, or press ENTER for the default
        Full Name []: André-Pierre LIMOUZIN
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
chfn: name with non-ASCII characters: 'André-Pierre LIMOUZIN'
Cette information est-elle correcte ? [O/n]O
pi@raspi01:~ $

Donner à un utilisateur les mêmes privilèges que pour pi

Lorsqu'on tente d'utiliser la commande sudo lorsqu'on est connecté avec l'utilisateur apl, il y a un message d'erreur qui s'affiche, indiquant que l'utilisateur apl ne possède pas les autorisations requises :
apl@raspi01:~ $ sudo apt-get update
[sudo] Mot de passe de apl : *****
apl n'apparaît pas dans le fichier sudoers. Cet événement sera signalé.
apl@raspi01:~ $ 
Et il en sera de même pour toutes les commandes exigeant des privilèges particuliers.
Pour qu'un utilisateur puisse utiliser la commande sudo, il doit appartenir au groupe sudo. Par ailleurs, l'utilisation de l'utilitaire sudo sous-entends que la commande lancée (apt-get dans notre exemple) nécessite des privilèges supplémentaire définis par l'appartenance à un autre groupe. En effet, en utilisant la commande groups, avec l'utilisateur apl, on constate que le seul groupe dont cet utilisateur est membre et le groupe apl.
apl@raspi01:~ $ groups
apl
apl@raspi01:~ $ 
Si on compare, l'appel de cette même commande avec l'utilisateur pi, on constate que le nombre de groupe dont cet utilisateur est membre est beaucoup plus important :
pi@raspi01:~ $ groups
pi adm dialout cdrom sudo audio video plugdev games users input netdev gpio i2c spi
pi@raspi01:~ $
Pour donner à l'utilisateur apl les mêmes droits que pi, il suffit de le rendre membre de tous ces groupes avec la commande usermod :
pi@raspi01:~ $ sudo usermod apl -a -G adm,dialout,cdrom,sudo,audio,video,plugdev,games,
users,input,netdev,gpio,i2c,spi
pi@raspi01:~ $ groups apl
apl : apl adm dialout cdrom sudo audio video plugdev games users input netdev spi i2c gpio
pi@raspi01:~ $
Dorénavant, la commande sudo fonctionne lorsqu'on est connecté avec l'utilisateur apl :
apl@raspi01:~ $ sudo apt-get update
[sudo] Mot de passe de apl : *****
Atteint :1 http://raspbian.raspberrypi.org/raspbian buster InRelease
Atteint :2 http://archive.raspberrypi.org/debian buster InRelease
Lecture des listes de paquets... Fait
apl@raspi01:~ $ 

Supprimer la demande de mot de passe pour la commande sudo

Lorsqu'un utilisateur qui n'est pas pi utilise la commande sudo, par sécurité (puisqu'il passe en mode super utilisateur), une demande de confirmation par mot de passe est envoyée. Ce qui n'est pas le cas pour l'utilisateur pi. Bien que ce ne soit pas recommandé de supprimer ce prompt pour un utilisateur non averti, il est possible de donner à l'utilisateur sudoer le même fonctionnement que pour pi.
La commande sudo est configurée dans le fichier /etc/sudoers dont le contenu est indiqué ci-dessous :
pi@raspi01:~ $ sudo cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

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

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
pi@raspi01:~ $
Il est fortement déconseillé de modifier les fichiers de configuration de Rasbian. En effet, les retours arrières peuvent se révéler compliqués, voire infructueux. C'est pourquoi, sous Rasbian, outre le fichier de configuration de base, il est prévu un répertoire portant le même nom suffixé par .d qui peut contenir autant de fichiers que nécessaires dont le contenu est automatiquement inclus dans le fichier de configuration principal comme le précise la dernière ligne de commentaire.
Le répertoire /etc/sudoers.d contient justement le fichier 010_pi-nopasswd dont le contenu spécifie le fait que la commande sudo utilisée par l'utilisateur pi ne génère pas de demande de mot de passe.
pi@raspi01:~ $ sudo cat sudo cat /etc/sudoers.d/010_pi-nopasswd
pi ALL=(ALL) NOPASSWD: ALL
pi@raspi01:~ $
Pour supprimer la demande de mot de passe à l'utilisation de sudo pour l'utilisateur apl, il suffit d'ajouter une commande identique soit dans le fichier /etc/sudoers, soit dans le fichier /etc/sudoers.d/010_pi-nopasswd. Mais ce qui est plus élégant est de rajouter un fichier propre à l'utilisateur apl, par exemple 010_apl-nopasswd, pour contenir les nouveaux paramètres de configuration. Le retour arrière, s'il est nécessaire, se résumera à supprimer ce fichier.
A préciser que les trois premiers chiffres utilisés en préfixe (010_) n'est pas anodin. En effet, les répertoires d'extension de configuration *.d permettent de faire cohabiter plusieurs versions de configuration différentes, celles-ci étant préfixées par le numéro correspondant.
L'opération consiste donc à recopier le fichier 010_pi-nopasswd dans un nouveau fichier 010_apl-nopasswd, puis d'éditer celui-ci avec nano pour remplacer pi par apl.
pi@raspi01:~ $ sudo cp /etc/sudoers.d/010_pi-nopasswd /etc/sudoers.d/010_apl-nopasswd
pi@raspi01:~ $ sudo nano /etc/sudoers.d/010_apl-nopasswd
pi@raspi01:~ $ sudo cat /etc/sudoers.d/010_apl-nopasswd
apl ALL=(ALL) NOPASSWD: ALL
pi@raspi01:~ $
Maintenant la commande sudo lancée par l'utilisateur apl ne génère plus de demande de mot de passe

Commentaires

Posts les plus consultés de ce blog

Gérer la mise en veille

Configurer VSCode pour programmer et déboguer à distance sur Raspberry Pi

Créer un nouvel utilisateur Raspbian