Root et Wheel

La commande su permet de basculer sur un autre compte utilisateur.

Les options de su

Différences entre su, su - et su -i:

  • su <user> : démarre un shell sans connexion
    • Lance un shell sous l’identité de de l’utilisateur voulu en conservant les paramètres d’environnement courants
  • su - <user> : lance un shell de connexion (si pas précisé, se connecte en root)
    • Configure l’environnement shell comme s’il s’agissait d’une nouvelle connexion sous l’identité voulue
  • sudo -i : bascule vers le compte root et exécute son shell par défaut

Droits spéciaux avec sudoers et sudoers.d

Syntaxe

La syntaxe du fichier pour la section User Privilege est :

Utilisateur hôte=(utilisateur:groupe) /chemin/commande
%groupe hôte=(utilisateur:groupe) /chemin/commande

Dans ces deux exemples :

root    ALL=(ALL:ALL) ALL
%wheel ALL=(ALL:ALL) ALL

L’utilisateur root et le groupe %wheel sont configurés comme tels :

  • hôte → ALL : la règle s’applique à tous les hôtes
  • utilisateur → ALL : le ou les utilisateur(s) dont on prend les droits
  • %groupe → ALL : le ou les groupe(s) dont on prend les droits
  • commande → ALL : le ou les commande(s) que utilisateur ou %groupe peut exécuter

Configuration des groupes

Le fichier /etc/sudoers et le répertoire /etc/sudoers.d/ permettent de configurer les utilisateurs pouvant avoir accès à la commande sudo.

# cat /etc/sudoers

## Active l’accès sudo pour les membres du groupe wheel
%wheel ALL=(ALL:ALL) ALL

## Paramètres pour certains groupes
%ripper prod=(ALL) /usr/sbin/ripper
%karaoke dev=(metal:chanteurs) /usr/sbin/metal/deathmetal, /usr/sbin/voice

Dans les exemples ci-dessus :

  • %ripper prod=(ALL) /usr/sbin/ripper

    • %ripper : le groupe ripper
    • prod : sur l’hôte prod
    • ALL : peut exécuter des commandes en tant que n’importe quel utilisateur
    • /usr/sbin/ripper : peut lancer le script ripper
  • %karaoke dev=(metal:chanteur) /usr/sbin/deathmetal

    • %karaoke : le groupe karaoke
    • dev : sur l’hôte dev
    • metal : peut exécuter des commandes en tant qu’utilisateur metal
    • chanteurs : peut exécuter des commandes en tant que groupe chanteurs
    • /usr/sbin/metal/deathmetal, /usr/sbin/chanteurs/voice : peuvent lancer le script deathmetal et voice

Configuration pour des utilisateurs

Il faut créer un fichier correspondant à l’username de l’utilisateur dans le répertoire /etc/sudoers.d/.

Pour donner les droits sudo à l’utilisateur john-adm, on lui crée un fichier spécifique /etc/sudoers.d/john-adm et on y inscrit :

john-adm ALL=(ALL) ALL

Autre exemples :
(@soon)

/!\ Résumé des commandes

Commandes :

# su <username>         // basculer vers un autre compte avec son shell par défaut
# su - <username> // basculer vers un autre compte et ouvre un nouveau shell
# su - // basculer en root
# sudo -i // basculer en root avec son shell par défaut
# sudo <commande> // commande avec privilèges root

Fichiers :

/etc/sudoers            // Ajouter des privilèges ou restrictions
/etc/sudoers.d // Pour des utilisateurs en particulier
/var/log/secure // Logs des commandes sudo non autorisées

Donner les droits sudo à un utilisateur, le fichier et la syntaxe sont :

# cat /etc/sudoers.d/john-adm
john-adm ALL=(ALL) ALL

Cas pratique

Accès au répertoire /root:

[aline@SERVER01 ~]$ ls /root/
ls: cannot open directory '/root/': Permission denied

Création d’un fichier /etc/sudoers.d/admin pour que le groupe admin dispose de tous les privilèges :

[root@SERVER01 ~]# vi /etc/sudoers.d/admin
[root@SERVER01 ~]# cat /etc/sudoers.d/admin
%admin ALL=(ALL) ALL

Vérification :

[aline@SERVER01 ~]$ sudo ls /root/
[sudo] password for aline:
anaconda-ks.cfg test

Car l’utilisateur appartient au groupe admin :

[aline@SERVER01 ~]$ id
uid=1000(aline) gid=1000(aline) groups=1000(aline),5000(supervisors),5001(admin) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Documentation

MAN su(1)
MAN sudo(8)
MAN visudo(8)
MAN sudoers(5)
https://www.digitalocean.com/community/tutorials/how-to-edit-the-sudoers-file-fr
https://n0tes.fr/2022/01/20/Le-fichier-sudoers/

Remerciements

S0410N3

Merci à S0410N3 pour le complément d'informations


WaM

Merci à WaM pour le complément d'informations

> Partager <