Le système Linux est beaucoup plus sécurisé que n’importe quel autre système. L’une des façons de mettre en place la sécurité dans Linux est la politique de gestion des utilisateurs et des autorisations utilisateur, et les utilisateurs normaux ne sont pas autorisés à effectuer des opérations système.
Si un utilisateur normal a besoin d’effectuer des modifications à l’échelle du système, il doit utiliser la commande « su » ou « sudo ».

REMARQUE – Cet article s’applique davantage aux distributions Ubuntu, mais il est également applicable à la plupart des distributions Linux populaires.
‘su’ Vs ‘sudo’
‘su‘ vous oblige à partager votre mot de passe root avec d’autres utilisateurs tandis que ‘sudo‘ permet d’exécuter des commandes système sans mot de passe root ‘sudo’ vous permet d’utiliser votre propre mot de passe pour exécuter des commandes système, c’est-à-dire de déléguer des responsabilités système sans mot de passe root.
Qu’est-ce que ‘sudo’ ?
‘sudo‘ est un binaire racine setuid, qui exécute des commandes root au nom des utilisateurs autorisés et les utilisateurs doivent entrer leur propre mot de passe pour exécuter une commande système suivie de ‘sudo‘.
Qui peut exécuter ‘sudo’ ?
Nous pouvons exécuter ‘/usr/sbin/visudo‘ pour ajouter/supprimer la liste des utilisateurs pouvant exécuter ‘sudo‘.
$ sudo /usr/sbin/visudo
A screen shot of ‘/usr/sbin/visudo‘ file, looks something like this:
La liste sudo ressemble à la chaîne ci-dessous, par défaut :
root ALL=(ALL) ALL
Note : Vous devez être root pour éditer le fichier /usr/sbin/visudo.
Octroi de l’accès sudo
Dans de nombreuses situations, l’administrateur système, et surtout ceux qui sont nouveaux dans ce domaine, trouve la chaîne “root ALL=(ALL) ALL” comme un modèle et accorde un accès illimité à d’autres, ce qui peut être potentiellement très dangereux.
Modifier le fichier ‘/usr/sbin/visudo’ pour quelque chose comme le modèle ci-dessous peut vraiment être très dangereux, à moins de faire confiance complètement à tous les utilisateurs répertoriés.
root ALL=(ALL) ALL adam ALL=(ALL) ALL tom ALL=(ALL) ALL mark ALL=(ALL) ALL
Paramètres de sudo
A properly configured ‘sudo‘ is very flexible and number of commands that needs to be run may be precisely configured.
La syntaxe de la ligne configurée de ‘sudo‘ est :
User_name Machine_name=(Effective_user) command
La syntaxe ci-dessus peut être divisée en quatre parties :
- Nom_utilisateur : C’est le nom de l’utilisateur ‘sudo‘.
- Nom_machine : C’est le nom de l’hôte sur lequel la commande ‘sudo‘ est valide. Utile lorsque vous avez de nombreux ordinateurs hôtes.
- (Utilisateur_effectif) : L’‘Utilisateur effectif’ autorisé à exécuter les commandes. Cette colonne vous permet d’autoriser les utilisateurs à exécuter des Commandes Système.
- Commande : commande ou ensemble de commandes que l’utilisateur peut exécuter.
Lecture suggérée: 10 configurations utiles de Sudoers pour configurer ‘sudo’ sous Linux
Certaines situations, et leur ligne ‘sudo’ correspondante:
Q1. Vous avez un utilisateur mark qui est administrateur de base de données. Vous devez lui fournir l’accès complet uniquement sur le serveur de base de données (beta.database_server.com), et pas sur tout autre hôte.
Pour la situation ci-dessus, la ligne ‘sudo’ peut être écrite comme suit:
mark beta.database_server.com=(ALL) ALL
Q2. Vous avez un utilisateur ‘tom‘ qui est censé exécuter une commande système en tant qu’utilisateur autre que root sur le même serveur de base de données, comme expliqué ci-dessus.
Pour la situation ci-dessus, la ligne ‘sudo’ peut être écrite comme suit:
mark beta.database_server.com=(tom) ALL
Q3. Vous avez un utilisateur sudo ‘chat‘ qui est censé exécuter uniquement la commande ‘chien‘.
Pour mettre en œuvre la situation ci-dessus, nous pouvons écrire ‘sudo’ comme suit:
mark beta.database_server.com=(cat) dog
Q4. Et si l’utilisateur doit se voir accorder plusieurs commandes?
Si le nombre de commandes que l’utilisateur est censé exécuter est inférieur à10, nous pouvons placer toutes les commandes côte à côte, avec un espace blanc entre elles, comme indiqué ci-dessous:
mark beta.database_server.com=(cat) /usr/bin/command1 /usr/sbin/command2 /usr/sbin/command3 ...
Si cette liste de commandes varie dans la plage, où il n’est littéralement pas possible de taper chaque commande manuellement, nous devons utiliser des alias. Alias! Ouais, l’utilitaire Linux où une commande longue ou une liste de commandes peut être référencée par un mot-clé court et facile.
A few alias Examples, which can be used in place of entry in ‘sudo‘ configuration file.
User_Alias ADMINS=tom,jerry,adam user_Alias WEBMASTER=henry,mark
WEBMASTERS WEBSERVERS=(www) APACHE Cmnd_Alias PROC=/bin/kill,/bin/killall, /usr/bin/top
Il est possible de spécifier un Groupe Système, à la place des utilisateurs, qui appartiennent à ce groupe en suffixant simplement ‘%’ comme suit:
%apacheadmin WEBSERVERS=(www) APACHE
Q5. Et si on exécutait une commande ‘sudo‘ sans entrer de mot de passe ?
Nous pouvons exécuter une commande ‘sudo‘ sans entrer de mot de passe en utilisant l’option ‘NOPASSWD‘.
adam ALL=(ALL) NOPASSWD: PROCS
Ici, l’utilisateur ‘adam‘ peut exécuter toutes les commandes aliasées sous “PROCS”, sans entrer de mot de passe.
Lecture recommandée: Laissez Sudo vous Insulter Lorsque Vous Entrez un Mot de Passe Incorrect
“sudo” vous propose un environnement robuste et sécurisé avec beaucoup de flexibilité par rapport à ‘su‘. De plus, la configuration de “sudo” est simple. Certaines distributions Linux ont “sudo” activé par défaut alors que la plupart des distros d’aujourd’hui nécessitent que vous l’activiez en tant que Mesure de Sécurité.
Pour ajouter un utilisateur (bob) à sudo, il suffit d’exécuter la commande suivante en tant que root.
adduser bob sudo
C’est tout pour le moment. Je serai de retour avec un autre article intéressant. D’ici là, restez branché et connecté à Tecmint. N’oubliez pas de nous laisser vos précieux commentaires dans la section des commentaires.
Source:
https://www.tecmint.com/su-vs-sudo-and-how-to-configure-sudo-in-linux/