« Si j'ai bien compris, en gros sudo c'est effectuer une action simple en tant qu'un autre utilisateur (ou root) ; su c'est se connecter en tant que cet utilisateur (ou root) pour toute la session. »
non. Dans les deux cas, c'est le boulot de su. cf l'option -c de se dernier.
sudo, ça permet de faire comme su sans devoir taper le mot de passe de l'utilisateur cible (le plus souvent root). À la place, soit tu ne tapes pas de mot de passe, soit tu tapes le mot de passe de l'utilisateur courant.
« En ce qui concerne la connection à root, quelle est la différence entre $ su ; et $ sudo su ? »
le premier te demandera de taper le mot de passe root, et le second peut avoir un tas de comportements différents suivant la configuration de sudo.
Et de fait, la bonne commande est :
$ su -
Le - permettant de nettoyer l'environnement avant de lancer le shell de root.