Digression sur root, su, sudo, et les autres

Je vais essayé de résumer l’utilisation de ces diverses commandes, je compte sur vous pour corriger ou compléter

L’utilisateur root
sur les systèmes unix et linux existe un utilisateur privilégié, appelé parfois superutilisateur: root
Cet utilisateur à tout les droits sur les fichiers systèmes, c’est lui qui lance les taches systèmes (en particulier la première de toutes init). Cet utilisateur à toujours pour numéro 0, et possède son propre groupe (root).Cet utilisateur est donc fondamental pour le système. Il devra être protégé par un mot de passe béton, et ne devra étre connecté que le strict minimum pour effectuer des tâches d’administration. On préfèrera déléguer certaines tâches d’administration basiques (sauvegarde par ex) à un autre utilisateur.
Autre conséquence, on ne lancera sous cet utilisateur que le minimum de processus, et on s’assurera que ceux ci soit mis à jour coté sécurité.

La commande su
su veut dire “substitute user”. Elle permet en ligne de commande de se changer temporairement en un autre utilisateur. Cette commande vous demandera bien évidement le mot de passe de l’utilisateur pour lequel vous voulez travailler.
exemple:su toto vous transformera en utilisateur toto pour exécuter les commandes suivantes (à condition que toto vous ai donné son mot de passe)
Il existe un cas particulier; si vous tapez su sans préciser d’utilisateur, c’est comme si vous avez utilisé “su root”, c’est un raccourci.
Ne pas oublier de faire exit lorsque vous en avez fini avec cet utilisateur, surtout si celui ci est root!

La commande kdesu (gksu)
Cette commande est strictement équivalente à su, mais en mode graphique. kdesu peut par exemple être utilisé avec mplayer pour lire un fichier situé dans le /home d’un autre utilisateur qui n’a pas donné l’accès en lecture aux autres (mais vous devez dans ce cas connaitre son mot de passe).
Ou bien pour lancer synaptic depuis votre environnement graphique courant.

La commande sudo
Cette commande (“substitute user do”) permet de donner de façon permanente des droits à un ou plusieurs utilisateurs sur un ou plusieurs programmes. Ces droits sont définis dans le fichier sudoers.
Je prendrait l’exemple de la commande poweroff. Il est pratique via sudo d’autoriser un utilisateur courant à utiliser cette commande sans mot de passe pour éteindre la machine; et ce n’est pas dangereux pour le système.
Autre exemple déja abordé: les sauvegardes. sudo permet de donner à quelques utilisateurs l’autorisation d’utiliser un logiciel de sauvegarde qui doit normalement être lancé avec les droits root. Lâ encore, pas de risque de casser la machine.
On peut faire beaucoup de chose avec sudo, et surtout des bêtises! C’est la solution de facilité qu’il faut éviter si une autre solution existe. La pire des erreurs serait de donner les droits root sur tout les programmes, sans mot de passe (c’est possible avec sudo!)

bon plan.
j’aurais plutot dit “su, sudo, root et les autres” parceque les autres en graphique sont moins importants. Tu as sux aussi, qui si je ne me trompe fait wrapper root au lancement d’une commande sous X.
Maintenant reste à sélectionner de >bonnes< réfèrences pour chaque point, et mettre à jour quand on en trouve de nouvelles.
Un wiki, koi. :smt003

très bonne idée !
moi, j’aurais inversé ce que dit Matt en plaçant ‘root’ qui est quand m^ le “père”, en premier :
root, su, sudo et les autres.
tt ça n’étant que mégotage (le correcteur ne connait pas :neutral_face: ), l’idée restant excellente.

oui voilà.

[quote=“piratebab”]La commande su
su veut dire “substitute user”. Elle permet en ligne de commande de se changer temporairement en un autre utilisateur. Cette commande vous demandera bien évidement le mot de passe de l’utilisateur pour lequel vous voulez travailler.
exemple:su toto vous transformera en utilisateur toto pour exécuter les commandes suivantes (à condition que toto vous ai donné son mot de passe)
Il existe un cas particulier; si vous tapez su sans préciser d’utilisateur, c’est comme si vous avez utilisé “su root”, c’est un raccourci.
Ne pas oublier de faire exit lorsque vous en avez fini avec cet utilisateur, surtout si celui ci est root![/quote]
On peut aussi définir un timeout sur l’utilisateur root.
Il suffit d’ajouter ça dans /root/.profile (si je ne me trompe pas) :

export TMOUT=30 readonly TMOUT
déloge root au bout de 30 secondes d’inactivité.

Bonsoir,

Ne dit on pas : “Cet utilisateur à toujours comme id 0” ?
Numéro ne me semble pas le terme adéquate.

Matt…

Bonsoir,

Ne dit on pas : “Cet utilisateur à toujours comme id 0” ?
Numéro ne me semble pas le terme adéquate.

Matt…[/quote]
On dirait éve"ntuellement

[quote]“Cet utilisateur a toujours comme id 0”[/quote] dans ce cas, mais sinon numéro est parfait, éventuellement si on veut être très précis numéro d’identification ou identifiant mais pas «id» qui ne veut rien dire en Français.

Allez, soyons vraiment précis : Numéro d’identification unique.

“identifiant numéral” ?
“identifiant” tout court, serait la traduction de "login"
EDIT :
ou plutôt "… numérique"
ou encore “adresse internet”

EDIT :
ou encore plus “français” :
"coordonnées internet"
ce qui pourrait s’écrire : CI

ce serait sympa d’éditer le message avec un guide pour le fichier “sudoers”; d’après ce que j’ai compris il faudrait mettre le TIMESTAMP à zéro, et lier la commande “sudo” avec le shell (WITH_TTY(?))…

J’aurais dit:
“root a tout les droits sur tout les fichiers en général” (et pas seulement les fichiers système).
A part ça j’ai trouvé ça très bien expliqué, c’est finalement la base d’un système unix.

[quote=“silver.sax”]J’aurais dit:
root a tout les droits sur tout les fichiers en général” (et pas seulement les fichiers système).
A part ça j’ai trouvé ça très bien expliqué, c’est finalement la base d’un système unix.[/quote]
Bien vu, je pense que Piratebab va s’empresser de rectifier. :smt006

ouais, un petit lien pour expliquer comment configurer sudoers.
Je (suis un peu bidon) et me fais parfois refuser le sudo avec le mot de passe sous pretexte que je ne suis pas dans sudoers
est ce que c’est pareil de lancer un terminal administrateur?
desole de vous rappeler qu’il y a des dilettantes dans le tas (genre moi)

hummm, il n’est pas forcément unique, j’ai eu vu (attention, c’est moche…) des systèmes unix (hpux en l’occurence) ou l’admin s’était créé un clone de root en éditant à la main le etc/passwd et en rajoutant une ligne strictement identique a celle de root mais avec un autre nom d’utilisateur (et l’id 0 donc, qui n’est alors plus unique…) au cas ou il ferait une bétise avec l’utilisateur root (genre le supprimer sans faire expres).
Mais ca marche. Je ne sais pas si c’est faisable sous debian par contre.
:mrgreen:

Je n’avais pas vu que vous aviez déterré ce post. Quand j’aurais un peu plus de temps, je le mettrai à jour avec vos remarques (c’est là qu’on voit l’utilité d’un wiki …)

juste pour le fun 2 extrait du manuel de ref debian, §9.2.4 à propos de sudo:

[quote=“piratebab”]juste pour le fun 2 extrait du manuel de ref debian, §9.2.4 à propos de sudo:

Moui… Je suis moyennement d’accord quand même :

  • Je vois pas trop en quoi un rm -r / ferait moins de mal en sudo qu’en root

  • Un bon administrateur (donc généralement pas débutant) fait le moins de chose possible avec root, donc un sudo bien configuré (n’autoriser que des commandes précises et pas tout sans mot de passe) peut être un très bon outil pour un administrateur confirmé qui veut taper rapidement une commande avec des privilèges de super utilisateur

Voila, c’est dans le wiki, catégories commandes de base.

Salut, et merci ! :slightly_smiling:

Salut,

Puisque ce post devient un salon IRC et qu’il est résumé dans le wiki, je le déplace dans assistance Debian :mrgreen:

Dites merci à Piratebab :laughing: qui manifestement n’a pas compris qu’il était visé !