Sudo, l'éternel débat

Ce message ne contiendra que mon avis personnel, totalement ouvert à la critique et même à la contradiction.


Sur une machine mono-utilisateur, qui ne soit pas vulnérable aux attaques extérieures (pas de service fourni à l’extérieur, donc surtout pas sur un serveur), et dont l’administrateur n’est pas du genre à copier-coller des commandes de la Toile sans les comprendre, un sudo global tel que configuré par Debian si on choisit de ne pas assigner de mot de passe au compte root à l’installation me paraît tout à fait raisonnable.

L’avantage de cette méthode est très clair : l’administration de la machine est grandement simplifiée.

Le désavantage est lui aussi plutôt évident : utiliser cette méthode sans avoir auparavant administré une machine fonctionnant avec le compte root classique accessible via su et un mot de passe différent de celui de l’utilisateur peut conduire facilement à une mauvaise compréhension de la différence utilisateur/root, distinction pourtant essentielle à qui ne veut pas casser son système.

Là où je me suis trompé jusqu’à aujourd’hui : ce type d’administration n’est pas à conseiller à un administrateur débutant qui n’a pas encore saisi cette différence fondamentale entre root et l’utilisateur, différence pas forcément évidente sur les machines mono-utilisateur où l’unique utilisateur est aussi l’administrateur.

Comment je compte corriger cette erreur à l’avenir : sans déconseiller l’utilisation d’un sudo global, je ne le ferai plus avant de m’être assuré que mon interlocuteur a bien saisi ce qu’est le compte root, et pourquoi il est important de différencier les tâches courantes des tâches d’administration.
Pour faciliter cet apprentissage, je propose que tous ceux qui se sentent compétents à ce sujet m’aident ici à étoffer la page du Wiki consacrée à ce sujet :
isalo.org/wiki.debian-fr/Root-su-sudo


Je relance ce débat, en espérant qu’il ne se transforme pas en dispute stérile mais plutôt qu’on aboutisse sur une « position officielle » entre les différents contributeurs du forum.
Ça devrait nous éviter ce qui arrive trop souvent, c’est-à-dire des conseils opposés de la part de différents membres du forum à chaque question posée à ce sujet, qui n’aboutissent qu’à apporter un peu plus de confusion à un utilisateur qui ne demandait rien d’autre que quelques éclaircissements.

Salut,

Je pense que la mise au point faite par vv222 est claire. Sudo est un bon outil dont l’usage est réservé à celui qui le domine :041

Issu de T&A de notre forum, merci FranB :slightly_smiling:

Defaults:ALL    tty_tickets, timestamp_timeout=0

[quote=“vv222”]Je relance ce débat, en espérant qu’il ne se transforme pas en dispute stérile mais plutôt qu’on aboutisse sur une « position officielle » entre les différents contributeurs du forum.
Ça devrait nous éviter ce qui arrive trop souvent, c’est-à-dire des conseils opposés de la part de différents membres du forum à chaque question posée à ce sujet, qui n’aboutissent qu’à apporter un peu plus de confusion à un utilisateur qui ne demandait rien d’autre que quelques éclaircissements.[/quote]
Quel débat ? Tu paraphrase et explicite ce que gg a dis ?

Je n’ai jamais utilisé Debian sans donner de mot de passer à root, donc je ne connais pas la configuration de base, si vous pensez qu’elle n’est pas assez strict peut être qu’il faudrait créer un rapport de bug ?

Il y avait un défaut de configuration de sudo dans Ubuntu et Debian, j’avais eu un débat assez vif avec le mainteneur du paquet (cf
début:
retour-douteux-ubuntu-t25483-50.html#p251903
message qui résume le pbm:
retour-douteux-ubuntu-t25483-75.html#p252180
J’avais refait des paquets en recompilant
retour-douteux-ubuntu-t25483-75.html#p252230
le fil montre un long débat à ce moment.

Je n’aime pas écarter sudo de son role premier à savoir donner les droits pour une commande précise ou une famille de commandes à un utilisateur ou groupes d’utilisateurs précis. Mais c’est un choix personnel qu’on peut discuter. L’idée d’un choix officiel me parait curieuse, le forum n’a pas vocation à ce genre de choses.

Le débat qui se lance à chaque mention de sudo dans un sujet SD :083

C’est pour ça que j’ai utilisé des guillemets.
J’entends par là d’essayer d’enfin tous se mettre d’accord sur le type d’usage de sudo à recommander.
Pour le moment, la moindre question à ce sujet aboutit à une demi-douzaine de personnes à intervenir, pour moitié conseillant l’usage de sudo, pour l’autre moitié le déconseillant. (j’exagère un peu mais la réalité n’est pas loin)

Plutôt que ce terme mal choisi de position « officielle », parlons plutôt d’une page complète sur le Wiki au contenu approuvé par toutes les personnes maîtrisant le sujet, qu’on pourrait alors lier lorsque des questions à ce sujet sont posées sans risque qu’un autre spécialiste du sujet débarque derrière pour dire tout le contraire. (l’article actuel du Wiki est une bonne ébauche, mais aborde très superficiellement le sujet)

Un bon exemple de ce qu’on trouve régulièrement sur le forum dès qu’on évoque un usage global de sudo :
utilisateurs-sudo-t44968.html#p451958
Avec piratebab et moi en train de donner des conseils contradictoires, on risque d’avoir du mal à apporter une aide vraiment efficace :wink:

Est-ce que, parce-qu’une majorité conseille une chose plutôt qu’une autre, ce conseil est forcement le plus avisé ?

Je ne trouve pas problématique que les avis divergent, du moment que le résultat est le meme et que toutes les infos pour que le membre conseillé fasse son choix soient données.

C’est le genre de sujet sur lequel chacun a son idée personnelle et est certain d’avoir de bonnes raisons de pratiquer ainsi.
Je vais donner quelques-une de mes idées (qui sont les meilleures :laughing: ).

Bien différencier les situations :
== serveur : absence de sudo, point.
== machine offerte à plusieurs utilisateurs avec admin averti et unique distribuant les droits en connaissance des causes : sudo avec restrictions pour chaque cas.
== machine mono utilisateur : selon ce qui suit …
– utilisateur débutant
– utilisateur assez averti
– utilisateur totalement averti, conscient des risques et maîtrisant parfaitement la question.

Voilà, à mon avis les paragraphes à étudier.

Je ne décrirai pas ma pratique mais, dans ce domaine, je crois faire partie des ‘totalement avertis’. Malgré ça, je n’hésite pas à limiter dans le temps l’ouverture de sudo et surtout, mes MDP, que ce soit celui de ‘root’ ou celui de ‘ricardo’ sont en béton armé.

Tu as deux méthodes:

  1. pas de sudo. Administration avec su ou root. L’intérêt est de bien dissocier le compte «administrateur» (root) des comptes utilisateurs. Il ne risque pas d’avoir un script éxécuté par l’utilisateur qui récupère des droits root car exécuté juste après un sudo (cas du time_stamp >0)par exemple. L’inconvénient est le risque de laisser une console root active (le temps d’aller chercher un café par exemple).

  2. sudo. Administration avec sudo seulement, pas de mot de passe root. Avantage: on ne risque pas de laisser une console root, on a un seul mot de passe à retenir. Les inconvénients sont de laisser une fenêtre avec un sudo possible sans mot de passe (time stamp > 0), une possibilité d’éxécuter des scripts avec droits root avec donc risque de compromission (typique de ceux qui suppriment la demande de mot de passe, ou encore qui laisse un time stamp > 0), et enfin en cas de crash des comptes utilisateurs (par exemple un répertoire /home en vrac, ou bien /tmp en 755, etc) impossibilité de se connecter en root pour réparer puisque root n’a pas de mot de passe.

Chacune de ces méthodes a ses avantages et inconvénients et le choix dépend des angoisses de l’utilisateur. Personnellement je n’aime pas sudo (je crois l’avoir dit) et préfère le confiner à son rôle strict de délégation de quelques commandes très précises. Mais je conçois une opinion contraire.

Pour le “time stamp”, tu as la commande :

$ su -c commande
ou
$ su -c ‘commande en plusieurs mots’

Même si tu vas boire le café (on les connait tes “cafés” torréfiés, pardon, distillés, en Irlande :laughing: ), la porte ‘root’ est fermée … en principe.