Pourquoi est-il appelé sudo?

30

Pourquoi utilisons-nous sudopour exécuter une commande de terminal en tant qu'administrateur? Pourquoi n'est-ce pas adminou autre chose? Y a-t-il une raison à cela sudo?

Mohammad
la source
19
Lire sudo lscomme "superutilisateur, faites ls" (et non, ce n'est pas idiot, les mnémoniques sont importants pour se souvenir des commandes) (et non, cela signifie probablement " s witch u ser and do , étant donné que cela susignifie changer d'utilisateur. Mais je trouve le premier plus agréable; -))
Rmano
1
superutilisateur bien mieux que admin :) merci d'avoir répondu.
Mohammad
2
C'est ce vaudou sudo que vous faites. :)
Shadur
14
Fait amusant: en italien sudosignifie (je) transpire . J'aime interpréter sudo Xcomme transpirer de peur de donner la mauvaise commande et d'effacer toutes mes données . Cela aide à garder à l'esprit que vous ne devez ajouter sudodevant les commandes que lorsque 1) C'est nécessaire 2) Vous savez ce que vous faites 3) Vous avez soigneusement écrit et lu la ligne de commande pour éviter les fautes de frappe (en particulier les mauvais espaces qui sont difficiles à attraper et peut entraîner des résultats inattendus vraiment horribles).
Bakuriu
2
@Rmano su signifiait à l'origine «super-utilisateur», «utilisateur substitut» est venu plus tard .
Gilles 'SO- arrête d'être méchant'

Réponses:

32

De Wikipédia :

sudo est un programme pour les systèmes d'exploitation informatiques de type Unix qui permet aux utilisateurs d'exécuter des programmes avec les privilèges de sécurité d'un autre utilisateur (normalement le superutilisateur ou root). Son nom est une concaténation de "su" (utilisateur substitut) et de "do", ou agir.

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 (parfois trouvé dans / etc / sudoers) autorise l'accès utilisateur, le système invoquera la commande demandée. Le fichier de configuration sudoers permet une grande quantité de configurabilité, y compris mais sans s'y limiter: activer les 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; nécessitant une nouvelle saisie d'un mot de passe à chaque fois ou ne nécessitant aucun mot de passe pour une ligne de commande particulière. Il peut également être configuré pour permettre le passage d'arguments ou de plusieurs commandes, et prend même en charge les commandes avec des expressions régulières.

C'est une commande temporaire unique avec des privilèges de superutilisateur (administrateur) sans connexion root directe.

Virusboy
la source
11
La partie wiki est correcte. Le commentaire sur "Mac is Su" n'est pas correct. Les Mac ont les deux sudo, sutout comme BSD et Linux.
daviewales
@Virusboy Bonjour, je suis désolé d'essayer dans cette rubrique. Mais je dois savoir Est-il facile d'utiliser Ubuntu 14.04 avec Toshiba M840 i3-3110M. Merci.
Bonn
C'est facile sur n'importe quel PC
Virusboy
21

xkcd: Sandwich

Avant sudo , la plupart des administrateurs étaient connectés en tant qu'utilisateur root car c'est un moyen facile de configurer votre système, car vous avez tous les droits. Cependant, une petite erreur , ou un mauvais lien Internet et votre système entier pourraient être affectés ou même compromis.

En raison de ce problème, sudo est apparu . L'objectif était de n'utiliser les privilèges administratifs que pour une courte période et uniquement lorsque cela était nécessaire. De plus, cela éviterait à l'utilisateur de se connecter à 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 voie «sudo». L'utilisateur root est désactivé; il n'y en a pas besoin et surtout pas de risque qu'un utilisateur se connecte via l'interface X avec l'utilisateur root. De plus, ils ont autorisé le lancement de chaque commande avec sudo pour les utilisateurs autorisés. Ce qui est cool, c'est que les utilisateurs expérimentés peuvent accéder au compte root.

Inconvénients de sudo:

  • Quelles commandes autorisez-vous 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 veut sudodire? Son nom est une concaténation de "su" (utilisateur substitut) et "do".

Pourquoi sudopas admin? Je pense que cela sudosignifie adminpour un moment précis et uniquement lorsque vous en avez besoin.

Les gens qui viennent de l'environnement Windows devraient comprendre pourquoi ce n'est pas le cas admin :)

Références: Image du site
: xkcd

nux
la source
alors pourquoi ne s'appelle-t-il pas rodo?
JamesRyan
3
Votre paragraphe «avant sudo» est incorrect. Il n'y a pas de différence entre suet sudoà cet égard, la seule différence entre les deux réside dans les informations d'identification utilisées. Utiliser sudoplutôt que sun'est pas plus sûr (en fait, c'est un peu moins sûr); le principal avantage de sudo (et la raison pour laquelle Ubuntu l'a choisi) est la simplicité pour l'utilisateur (un seul mot de passe à retenir).
Gilles 'SO- arrête d'être méchant'
11

De Linux.com, un produit de la Fondation Linux:

Sudo signifie soit " utilisateur substitut " soit " utilisateur super " (selon la façon dont vous voulez le voir). Ce que fait sudo est incroyablement 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.] Source

Cerran
la source
3

superutilisateur faire

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

$ su
# apt-get install somehorror
# exit
$

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

$ sudo apt-get install somehorror
John Lawrence Aspden
la source
2
su("utilisateur substitut") vous permet de devenir n'importe quel utilisateur: vous pouvez spécifier un nom d'utilisateur comme argument.
David Richerby
1
En fait, les deux ne sont pas exactement les mêmes, mais sont similaires dans la plupart des cas. Mais sudo vous permet principalement d'exécuter un programme avec des privilèges de super-utilisateur, mais garde votre environnement normal inchangé. su fait de vous un super utilisateur, avec un environnement de super utilisateur.
Marty Fried
3

En ce qui concerne pourquoi ce n'est pas "admin" - ou plus indirectement, pourquoi su n'est pas "switchUser" ou quelque chose comme ça - les commandes Unix traditionnelles ont tendance à être des abréviations minimales pour des raisons historiques liées aux origines d'Unix.

Pour la raison la plus fondamentale, 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 multi-utilisateurs, le MIT's Multics. (Unix tire son nom soit du "singulier des Multics", soit des "Multics castrés", en fonction de qui vous demandez et de leur humeur en ce moment.)

Parmi les autres innovations de Multics, il a introduit le concept de séparation de l'emplacement réel du fichier des informations du répertoire, permettant à un seul fichier d'avoir plusieurs noms. ("Liens", en termes Unix.) Les Multics en ont (trop) profité; la plupart des commandes Multics ont à la fois ALongNameThatIsImpossibleToType et ASNTOECR (un nom court dont seuls les experts peuvent se souvenir). L'expérience a montré que les noms longs n'apportaient vraiment pas beaucoup de convivialité puisque, de façon réaliste, à cette époque, tous les utilisateurs étaient ou sont rapidement devenus des "experts" et presque personne n'a jamais utilisé les noms longs. Lorsque Unix a adopté une partie de la conception de Multics, l'une de leurs simplifications a été de supprimer les noms longs inutilisés et de ne conserver que les noms courts adaptés aux experts.

Cela correspond également bien à la philosophie Unix de réduire le système d'exploitation et son jeu de commandes de base à leurs éléments essentiels, ce qui lui permet de fonctionner efficacement sur des systèmes plus petits. À cette époque, les programmeurs conservaient toujours tous les octets et cycles possibles. Les processeurs étaient extrêmement lents, les vitesses des terminaux étaient également extrêmement lentes, et la mémoire était considérablement plus chère (et plus lente, et avait de minuscules caches, le cas échéant). Garder les commandes système à une longueur minimale peut ne pas avoir réellement économisé beaucoup (le cas échéant) de vraies ressources, mais cela "semblait bon" pour l'état d'esprit de l'époque.

Si vous insistez vraiment sur des noms de commande conviviaux, la réponse Unix serait "Vous savez comment écrire un script shell; implémentez-le vous-même. Si vous ne savez pas comment écrire un script shell, vous devez apprendre à faire Si vous n'aimez pas l'apprentissage et / ou le codage, vous ne serez pas content avec Unix et devriez utiliser autre chose. "

Keshlam
la source
3

Que « superutilisateur » soit à l' su origine dérivé, il est inexact car le nom d'utilisateur que vous lui donnez ne doit pas nécessairement être un superutilisateur. Idem pour exécuter des commandes comme un autre utilisateur utilisant sudo -u.

« Utilisateur 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 susimplement comme "changer d'utilisateur" et sudodonc comme "changer d'utilisateur et faire".

otus
la source
1
toujours c'est super utilisateur mais substituez le son utilisateur plus à droite
BeyondProgrammer
1

Depuis le site Web de Sudo :

"Qu'est-ce que Sudo?

Sudo (su "do") permet à un administrateur système de déléguer le pouvoir de donner à certains utilisateurs (ou groupes d'utilisateurs) la possibilité d'exécuter certaines (ou toutes) des commandes en tant que root ou un autre utilisateur tout en fournissant une piste d'audit des commandes et de leurs arguments . "

"Sudo a été conçu et mis en œuvre pour la première fois par Bob Coggeshall et Cliff Spencer vers 1980 au département d'informatique de SUNY / Buffalo. Il fonctionnait sur un VAX-11/750 exécutant 4.1BSD. Une version mise à jour, attribuée à Phil Betchel, Cliff Spencer , Gretchen Phillips, John LoVerso et Don Gworek, a été publié dans le groupe de discussion Usenet de net.sources en décembre 1985. "

Cela dit, bien que je ne pense pas qu'il y ait de preuve, j'ai toujours fermement cru que le nom était une sorte de blague de programmeur geek. Vous avez la commande "su" (super utilisateur) "do" mais vous n'êtes pas réellement un super utilisateur - transformez le "doo" en "doh" et "sudo" ressemble / ressemble beaucoup à "pseudo" (faux , simulacre).

Anaksunaman
la source
-2

La plupart des gens ont répondu que c'est un mélange de "super utilisateur". J'aime ça, mais il peut être plus correct de dire que c'est un mashup de "l'utilisateur substitut" parce que vous pouvez choisir l'utilisateur que vous "faites" comme avec le drapeau -u.

Je pense aussi à cela comme un jeu sur le mot pseudonyme parce que vous pouvez prétendre être quelqu'un d'autre, que ce soit root ou tout autre utilisateur utilisant le drapeau -u.

trois tasses
la source
3
Eh bien, la question était de savoir pourquoi il est nommé tel qu'il est, pas pour les backronymes et / ou les mnémoniques, alors ... [citation nécessaire]
derobert
De plus l'utilisateur cible par défaut ne doit pas être root(mais il est logique qu'il soit ou au moins un avec uid 0 et il est généralement), voir runas_defaulten sudoers.
Stéphane Chazelas
@derobert +1 pour l'utilisation de "backronymes" et pour garder le site propre des réponses incorrectes.
trois tasses
@sch merci, je ne le savais pas.
trois tasses