Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/02/2018, à 18:03

system99

[Résolu] Su, sudo, sudoers

Salut tout le monde !

J'ai fait quelques tests de sécurité sur mon réseau domestique à l'aide de Kali Linux histoire d'y corriger ce qui n'allait pas.
Et se servir de Linux, c’est bien. Mais comprendre comment ça fonctionne à l’intérieur, c’est mieux !
Alors une fois mes tests et réglages terminés, j'ai essayé de configurer Kali à la manière d'Ubuntu puisqu'il n'y a par défaut qu'un seul compte : root.

Donc j'ai créé un compte utilisateur, et pour passer root, j'ai fait sudo commande ou sudo su, ce qui renvoie :

utilisateur n'apparaît pas dans le fichier sudoers. Cet événement sera signalé.

Par contre, ça fonctionne avec la commande su par défaut sur Debian et dérivés.
Après pas mal de recherche, j'apprends la différence entre su et sudo.
su sert à se loguer avec un autre compte (su utilisateur par exemple) et su sans argument = su root.
Quant à sudo, ça sert à élever ses privilèges au niveau de root (et non se loguer en root, nuance !), pour un temps limité (je n'avais jamais remarqué, car lorsque j'ai beaucoup de commandes à entrer, je fais directement sudo su).

Donc j'ai fait des recherche sur le fameux sudoers et comment le modifier. Pour la partie concernant les autorisations, j'ai à l'origine ceci :

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

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

que j'ai modifié comme ceci :

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

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

Donc ça y est, je peux enfin utiliser sudo comme sur Ubuntu !


Je compare avec le sudoers de mon Ubuntu et je vois que ce n'est pas la même configuration : il n'y a aucun utilisateur affiché dans le sudoers

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

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

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

Donc mon compte utilisateur fait sûrement parti d'un groupe présent dans sudoers.
Alors :

sudo cat /etc/group | grep utilisateur

Et bingo ! J'appartiens au groupe sudo !

Donc, dans kali, je supprime les modifications apportées à sudoers, j'ajoute mon compte utilisateur au groupe sudo.
(D'ailleurs, pour éviter de faire des mauvaises manipulations avec les groupes, vous faites plutôt adduser utilisateur groupe ou usermod -aG groupe utilisateur ?)
Et il me reste juste à désactiver le compte root et c’est tout bon !

J’ai pas mal galéré pour réunir toutes les informations dont j’avais besoin ! C’est fou à quel point les informations sur le sujet sont éparpillées !


Malgré tout, c'est encore le flou sur plusieurs points, d’où mon poste

  • Les commandes su et sudo ont-elles bien les rôles que je leur prête ?

  • Est-ce que sur un système Debian ou dérivé, si j’ajoute l’utilisateur principal au groupe sudo et que je désactive le compte root, je retrouve un fonctionnement root strictement comme sur Ubuntu ?

  • Quels avantages apportent la désactivation du compte root et l’utilisation de sudo ?

Dernière modification par system99 (Le 26/02/2018, à 22:35)

Hors ligne

#2 Le 26/02/2018, à 19:01

bruno

Re : [Résolu] Su, sudo, sudoers

Les commandes su et sudo ont-elles bien les rôles que je leur prête ?

su (Substitute User) permet de se substituer à n'importe quel utilisateur dont on connaît le mot de passe :

su -l toto

te demandera le mot de passe de toto pour ouvrir le shell de toto. Sans argument, ce sera celui de l'utilisateur root.
On peut aussi passer directement une commande à su.

sudo (Substitute User DO) permet a un utilisateur présent dans sudoers de se substituer à n'importe quel utilisateur en tapant son propre mot de passe.

sudo -u toto -i

te demandera ton mot de passe et t'ouvrira le shell de toto. Sans argument ce sera celui de root.
On peut aussi passer directement une commande à sudo.

Faire :

sudo su

fonctionne mais c'est stupide : tu demande à te substituer à root (sudo) pour te substituer à root (su) wink
Pour ouvrir un shell root avec sudo, on fait :

sudo -i

(lire man sudo et man su)

Deuxième question : oui (si tu as bien la ligne permettant aux membres du groupe sudo d'exéxucter n'importe quelle commande).

Troisième question : on peut en débattre pendant des heures. Les deux systèmes sont équivalents, chacun avec leurs propres avantages et inconvénients).

Hors ligne

#3 Le 26/02/2018, à 22:21

system99

Re : [Résolu] Su, sudo, sudoers

Merci de ta réponse, c'est super clair ! wink

Comme quoi, je n'avais pas encore bien compris la différence entre su et sudo... Je comprends mieux maintenant pour sudo su : se substituer à root pour exécuter su (qui sert à se substituer à root)... C'est chez OpenClassrooms que j'ai appris ça roll


J'en profite pour faire un récapitulatif. Peut-être que ça pourra servir pour d'autres :

su permet de substituer à un utilisateur, à condition de connaître le mot de passe.

su toto

permet de se substituer à l'utilisateur toto.
su sans argument permet de se substituer à root.
L'argument -l permet de charger le shell de l'utilisateur.
On constate que l'on arrive dans le dossier personnel de toto.

su -l toto
man su a écrit :

-, -l, --login
           Fournir à l'utilisateur un environnement similaire à celui qu'il
           aurait obtenu s'il s'était connecté directement.

sudo permet à un utilisateur présent dans sudoers de se substituer à un autre utilisateur en tapant son propre mot de passe.
sudo sans argument permet de se substituer à root.
L'argument -u  permet de spécifier un utilisateur.

sudo -u toto
man sudo a écrit :

-u user, --user=user
           Exécutez la commande en tant qu'utilisateur autre que l'utilisateur cible par défaut (généralement root).

L'argument -i permet de charger le shell de l'utilisateur.
On constate que l'on arrive dans le dossier personnel de toto.

sudo -u toto -i
man sudo a écrit :

-i, --login
           Cela signifie que les fichiers de ressources spécifiques à la connexion tels que .profile ou .login seront lus par le shell.
           La commande est exécutée avec un environnement similaire à celui qu'un utilisateur recevrait lors de la connexion.

Dernière modification par system99 (Le 27/02/2018, à 12:08)

Hors ligne

#4 Le 27/02/2018, à 08:22

bruno

Re : [Résolu] Su, sudo, sudoers

Attention, une petite erreur, c'est :

su -l toto

Hors ligne

#5 Le 27/02/2018, à 11:48

system99

Re : [Résolu] Su, sudo, sudoers

Corrigé !

Hors ligne