Le sudo
fichier de service existe pour s'assurer que les privilèges demandés ne restent pas après un redémarrage. Fondamentalement, il garantit qu'après le redémarrage, les utilisateurs normaux qui ont demandé des autorisations root resteront des utilisateurs normaux.
Une explication détaillée sur sudo
Toutes les explications ci-dessous consistent à obtenir toutes les informations pour tous ceux qui lisent cette question, puis à expliquer ce que fait le fichier sudo dans le dossier de service.
Lorsque vous installez Ubuntu ou toute autre distribution qui utilise sudo
la différence entre être root et être un utilisateur qui utilise sudo
pour obtenir des privilèges "root like" (privilèges administratifs ou super-utilisateurs), voici ce qui suit:
En tant que root
- On ne vous demande pas de mot de passe pour chacune ou toutes les commandes que vous exécutez sur une session
- Toutes les commandes que vous exécutez ne seront pas enregistrées par défaut
- Le système suppose que vous savez ce que vous faites (raison pour laquelle il ne demande pas de mot de passe à chaque fois que vous exécutez une commande)
- Il n'y a pas d'option de seconde chance ou de dernière minute si vous faites une erreur
Comme sudo
- Un mot de passe vous est demandé pour chacune des commandes que vous exécutez au cours d'une session. Par exemple, si vous ouvrez un terminal et exécutez une commande qui nécessite des privilèges administratifs, il vous demandera le mot de passe une fois pour cette session jusqu'à ce que vous fermiez le terminal ou que vous vous déconnectiez. Cela varie selon la commande que vous utilisez et où. Il peut demander une ou plusieurs fois.
- Toutes les commandes que vous exécutez seront enregistrées car vous demandez réellement la permission d'utiliser une commande privilégiée de superutilisateur.
- Le système suppose que vous demandez la permission temporairement et le droit administratif sera prêté temporairement (jusqu'à ce que vous vous déconnectiez, fermez le terminal, etc.)
- Vous avez une option de dernière minute pour corriger toute erreur. Cela se fait au moment où on vous demande le mot de passe.
Pourquoi SUDO a-t-il été créé
La création de SUDO a été réalisée car dans le passé, l'utilisation de root a créé plus de problèmes que de solutions. Les utilisateurs ont tous les droits, ce qui signifie que s'ils ont fait un nettoyage de printemps et littéralement supprimé le /usr
, /lib
et les /bin
dossiers (parce qu'ils pensaient qu'ils ne les pas nécessaires) .. deviner ce qui se passerait. De nombreux problèmes dans le passé étaient dus au fait que les utilisateurs ne connaissaient pas la puissance dont ils disposaient lors de l'utilisation de root. Fondamentalement, ils avaient root mais ne comprenaient pas Linux, la hiérarchie du système de fichiers, quels fichiers étaient importants, etc. (Quelque chose comme avoir une Ferrari et ne pas savoir conduire ... sur une autoroute!)
SUDO est également utilisé par les applications GUI (comme Update Manager) lorsqu'elles ont besoin de privilèges administratifs temporaires pour faire quelque chose. Ils n'en ont besoin que pour une quantité spécifique de commandes (généralement 1), puis reviennent au privilège de niveau utilisateur. C'est pour éviter d'avoir des privilèges root tout le temps et pour éviter de faire une erreur si l'utilisateur décide de supprimer une partie importante du système.
De plus, il offre une meilleure sécurité car l'utilisateur root est désactivé par défaut.
Enfin, si vous avez un PC de bureau ou un serveur, vous ne voulez vraiment pas que tout le monde soit root, ni qu'il ait tous les privilèges d'administrateur. Très mauvaise idée si votre petite sœur ou vos petits frères commencent à se demander ce qui se passerait si la clé se /boot
rencontrait DEL. C'est là sudo
qu'intervient pour diminuer les chances que quelque chose de mauvais se produise.
Que signifie accorder des privilèges de superutilisateur limités à des utilisateurs spécifiques ?
L'utilisateur ou les sudoers sudo ont en fait un fichier de configuration qui leur indique à quel point la commande sudo est limitée ou ouverte pour un utilisateur spécifique. Le fichier /etc/sudoers
contient toutes les informations pour limiter ou donner accès à un utilisateur sudo. Par défaut, il est livré avec un accès à tout, mais vous pouvez configurer ou limiter cela comme vous le souhaitez.
Pour plus d'informations sur l'utilisation du type de fichier sudoers man sudoers
dans un terminal. Par exemple, le format normal est:
HÔTE UTILISATEUR = COMMANDES
Par exemple cyrex server1 = /bin/ls
, donnera à l'utilisateur cyrex dans le serveur hôte1 l'accès pour exécuter la commande ls.
Par exemple cyrex server1 (root) = /bin/ls
, donnera à l'utilisateur cyrex dans le serveur hôte1 l'accès pour exécuter la commande ls en tant que root.
Par exemple cyrex ALL = /bin/ls
, donnera à l'utilisateur cyrex dans tous les hôtes un accès pour exécuter la commande ls.
Par exemple cyrex ALL = ALL
, donnera à l'utilisateur cyrex dans tous les hôtes un accès pour exécuter toutes les commandes.
Par exemple, luis ALL=(root) NOPASSWD: /bin/kill, /usr/bin/killall
cela me permettra d'exécuter sudo pour les commandes kill
et en killall
tant que root sans demander de mot de passe.