web-dev-qa-db-fra.com

Pourquoi s'appelle-t-il sudo?

Pourquoi utilisons-nous Sudo pour exécuter une commande de terminal en tant qu'administrateur? Pourquoi n'est-ce pas admin ou autre chose? Existe-t-il une raison pour Sudo?

30
Mohammad

De Wikipedia :

Sudo est un programme pour les systèmes d'exploitation d'ordinateur de type Unix qui permet aux utilisateurs d'exécuter des programmes avec les privilèges de sécurité d'un autre utilisateur (généralement le superutilisateur ou le superutilisateur). Son nom est une concaténation de "su" (utilisateur suppléant) et "do", ou action.

Contrairement à la commande su, les utilisateurs fournissent généralement leur propre mot de passe à Sudo plutôt que le mot de passe root. Après l’authentification et si le fichier de configuration/usr/local/etc/sudoers (qui se trouve parfois dans/etc/sudoers) autorise l’accès de l’utilisateur, le système appelle la commande demandée. Le fichier de configuration sudoers permet une très grande configurabilité, notamment: l'activation des commandes root uniquement à partir du terminal appelant; ne nécessitant pas de mot de passe pour certaines commandes; exiger un mot de passe par utilisateur ou groupe; exiger la ré-entrée d'un mot de passe à chaque fois ou ne jamais exiger un mot de passe pour une ligne de commande particulière. Il peut également être configuré pour permettre de passer des arguments ou plusieurs commandes, et prend même en charge les commandes avec des expressions régulières.

C'est une commande temporaire unique avec les privilèges de superutilisateur (administrateur) sans connexion directe à la racine.

31
Virusboy

xkcd: Sandwich

Avant Sudo , la plupart des administrateurs étaient connectés en tant qu'utilisateur root, car il s'agit d'un moyen simple de configurer votre système, car vous disposez de tous les droits. Cependant, une petite erreur , ou un mauvais lien Internet et tout votre système pourraient être affectés, voire compromis.

En raison de ce problème, Sudo est apparu . L'objectif était d'utiliser les privilèges d'administration uniquement pendant une courte période et uniquement lorsque cela était nécessaire. De plus, cela éviterait que l'utilisateur se connecte à un autre compte. Cela améliorerait évidemment la sécurité du système .

Sous Ubuntu , ils choisissent d’améliorer la sécurité de votre système. Ainsi, ils ont décidé de suivre la méthode "Sudo". L'utilisateur root est désactivé. cela n'est pas nécessaire et surtout pas de risque qu'un utilisateur se connecte via l'interface X avec l'utilisateur root. En outre, chaque commande a été lancée avec Sudo pour les utilisateurs autorisés. La chose intéressante est que les utilisateurs avec pouvoir peuvent accéder au compte root.

Inconvénients de Sudoname__:

  • Quelles commandes vous autorisez via Sudo
  • Vous devez écrire Sudoavant chaque commande nécessitant un privilège administratif.
  • De temps en temps, vous devez retaper le mot de passe .

Que signifie Sudoname__? Son nom est une concaténation de "su" (utilisateur suppléant) et "do".

Pourquoi Sudopas adminname__? Je pense que Sudosignifie adminpour une heure précise et uniquement lorsque vous en avez besoin.

Les personnes venant de l’environnement Windows doivent comprendre pourquoi ce n’est pas admin:)

Références: Site
Image: xkcd

21
nux

De Linux.com, un produit de Linux Foundation:

Sudo signifie " utilisateur suppléant do " ou " super utilisateur do "(selon comment vous voulez le regarder). Ce que fait Sudo est extrêmement important et crucial pour de nombreuses distributions Linux. En effet, Sudo permet à un utilisateur d’exécuter un programme en tant qu’autre utilisateur (le plus souvent l’utilisateur root).

[Je souligne tout particulièrement.] Source

11
Cerran

super-utilisateur

Il y a une commande, su, pour devenir le superutilisateur, vous pourriez donc dire

$ su
# apt-get install somehorror
# exit
$

Sudo vous permet de faire cela d'un seul coup, et vous n'avez pas à vous souvenir de renoncer à vos pouvoirs magiques.

$ Sudo apt-get install somehorror
3

Quant aux raisons pour lesquelles ce n'est pas "admin" - ou plus indirectement, pourquoi su n'est pas "switchUser" ou quelque chose du genre - les commandes Unix traditionnelles ont tendance à être des abréviations minimes pour des raisons historiques liées aux origines d'Unix.

Pour la raison la plus élémentaire, nous devons revenir à la même raison pour laquelle il s'appelle Unix en premier lieu. Une grande partie d'Unix a été inspirée par l'un des premiers systèmes d'exploitation multitâche à utilisateurs multiples, Multics de MIT. (Unix tire son nom soit du "singulier des Multics", soit des "Multics castrés", en fonction de qui vous demandez et de leur humeur du moment.)

Parmi les autres innovations de Multics, il a introduit le concept de séparation de l'emplacement du fichier réel des informations de répertoire, permettant à un fichier unique d'avoir plusieurs noms. ("Links", en termes Unix.) Multics en a (trop) profité pleinement; la plupart des commandes Multics ont à la fois ALongNameThatIsImpossibleToType et ASNTOECR (nom abrégé que seuls les experts peuvent mémoriser). L’expérience a montré que les noms longs n’apportaient pas beaucoup de convivialité puisque, de manière réaliste, tous les utilisateurs étaient ou étaient rapidement devenus des "experts" et quasiment personne ne les utilisait. Lorsque Unix a adopté certaines des conceptions de Multics, l’une de leurs simplifications consistait à supprimer les noms longs non utilisés et à ne conserver que les noms courts accessibles aux experts.

Cela correspond également à la philosophie Unix de réduction du système d’exploitation et de son jeu de commandes principal à leurs éléments essentiels, lui permettant de fonctionner efficacement sur des systèmes plus petits. À cette époque, les programmeurs conservaient encore tous les octets et cycles possibles. Les processeurs étaient extrêmement lents, la vitesse des terminaux était également beaucoup plus lente et la mémoire était énormément plus chère (et plus lente, avec éventuellement de minuscules caches). Le fait de garder les commandes système à une longueur minimale n'a peut-être pas réellement permis d'économiser beaucoup (le cas échéant) de ressources réelles, mais cela "s'est senti bien" pour la mentalité de l'époque.

Si vous insistez vraiment sur les noms de commande conviviaux, la réponse Unix serait "Vous savez écrire un script shell; vous devez le mettre en œuvre vous-même. Si vous ne savez pas écrire un script shell, vous devez apprendre à le faire. Donc, si vous n'aimez pas apprendre et/ou coder, vous ne serez pas content d'Unix et devriez utiliser autre chose. "

3
keshlam

Si "superutilisateur" est ce dont su est dérivé à l'origine, il est inexact car le nom d'utilisateur que vous lui donnez ne doit pas nécessairement être un superutilisateur. Idem pour l'exécution de commandes en tant qu'utilisateur utilisant Sudo -u.

"tilisateur suppléant" est plus précis, mais semble maladroit. Cela me fait penser à un enseignant suppléant.

Par conséquent, je préfère penser à su simplement comme "switch user" et Sudo donc à "switch user & do".

3
otus

Depuis le site Web de Sudo :

"Qu'est-ce que Sudo?

Sudo (su "do") permet à un administrateur système de déléguer des pouvoirs afin de permettre à certains utilisateurs (ou groupes d'utilisateurs) d'exécuter certaines (ou toutes) les commandes en tant qu'utilisateur root ou utilisateur, tout en fournissant un suivi d'audit des commandes et de leurs arguments. "

"Sudo a été conçu et mis en oeuvre pour la première fois par Bob Coggeshall et Cliff Spencer vers 1980 au département d’informatique de SUNY/Buffalo. Il fonctionnait sous un système de développement de fichiers 4.1 (VAX-11/750). Une version mise à jour, attribuée à Phil Betchel, de Cliff Spencer Gretchen Phillips, John LoVerso et Don Gworek ont ​​été postés dans le groupe de discussion Usenet de net.sources en décembre 1985. "

Cela dit, même si je ne crois pas qu’il y ait des preuves, j’ai toujours cru fermement que le nom était une sorte de blague de programmeur geek. Vous avez la commande "su" (super utilisateur) "do" mais vous n’êtes pas vraiment un super utilisateur - transformez le "doo" en "doh" et "Sudo" ressemble beaucoup à "pseudo" (faux , simulacre).

1
Anaksunaman