Si je comprends bien la philosophie Linux, sudo
devrait être utilisé avec parcimonie et la plupart des opérations devraient être effectuées en tant qu'utilisateur sous-privilégié. Mais cela ne semble pas avoir de sens, car je dois toujours entrer sudo
, que ce soit pour gérer des paquetages, éditer des fichiers de configuration, installer un programme à partir des sources ou peu importe. Ce ne sont même pas des trucs techniques, juste ce que fait un utilisateur régulier.
Cela me rappelle beaucoup le UAC de Windows, que les utilisateurs désactivent ou configurent pour ne pas nécessiter de mot de passe (juste un clic). En outre, de nombreux utilisateurs Windows sont également des comptes d’administrateur.
En outre, j'ai vu certaines personnes afficher des commandes nécessitant des sudo
privilèges sans sudo
. Leur système est-il configuré de manière à sudo
ne pas être requis?
sudo
tout ce qui implique de changer le système. Si vous ne travaillez que sur vos propres fichiers / postes de travail, vous n'affectez personne d'autre, vous n'avez donc pas besoin de privilèges élevés. Si vous exécutez des commandes privilégiées sans sudo, vous êtes probablement déjà un super utilisateur (c'est-à-dire un utilisateur root) et c'est généralement moins recommandé que d'utiliser sudo pour des tâches spécifiques à l'ensemble du systèmesudo
-vous quand vous ne devriez pas? Les commandes d'un utilisateur Unix normale devrait consister principalement decd
,ls
, déplacer, copier, supprimer et modifier les fichiers qu'ils ont accès. Si vos commandes habituelles ne comprennent pas cela, vous n'êtes probablement pas un utilisateur Unix habituel.sudo !!
pour relancer la dernière commande que vous avez tapée avec sudo devant.Réponses:
Vous avez mentionné ces fonctions d'administration système
comme des choses qui
Dans un système multi-utilisateur typique, ce ne sont pas des actions utilisateur ordinaires; un administrateur système s'inquiéterait de cela. Les utilisateurs ordinaires (non "sous privilégiés") peuvent alors utiliser le système sans se soucier de son entretien.
Sur un système domestique, oui, vous finissez par devoir administrer et utiliser le système.
Est-ce vraiment une telle difficulté à utiliser
sudo
? N'oubliez pas que s'il ne s'agit que de votre système, rien ne vous empêche d'entrer dans unroot
shell (sudo -s
- voir cet article pour un aperçu des différents moyens d'obtenir un shell root) et / ou desudo
ne pas demander de mot de passe.la source
sudo
- c'est comme un test de santé mentale.Sudo / Root est utilisé chaque fois que vous faites quelque chose qu'un utilisateur standard ne devrait pas avoir la capacité de faire pour risquer d'endommager / modifier la configuration du système d'une manière que l'administrateur du système ne permettrait normalement pas.
Toutes ces fonctions sont techniquement des fonctions d’administration et peuvent endommager gravement votre système si une erreur est commise. Dans un environnement d'entreprise, en tant que Sysadmin, ce sont des choses que je ne laisserais PAS mon utilisateur faire sans que je le sache, donc sudo.
Par exemple, si un fichier de package / config peut être modifié sans privilèges élevés, il serait extrêmement simple pour une source externe d’exécuter simplement du code distant qui pourrait endommager / compromettre votre système. En obligeant ces actions à requérir un accès root, cela vous oblige, en tant qu’utilisateur, à décider si ces actions doivent ou non avoir lieu.
C'est très similaire aux
UAC
fenêtres, c'est en fait là que Windows a eu l'idéeUAC
.La citation que vous recevez la première fois que vous utilisez sudo est très appropriée et très importante:
Surtout # 2, réfléchissez avant de taper. C’est une des principales raisons pour lesquelles sudo existe: lorsque vous tapez une commande et qu’il se déclenche, "il doit être root pour pouvoir effectuer cette action", il vous oblige à vous arrêter et à PENSER à ce que vous faites réellement.
la source
Vous devez exécuter ces commandes en tant que superutilisateur, mais vous ne devez pas les exécuter avec
sudo
. Vous pouvez par exemple utilisersu
oudoas
(remplacement d'OpenBSD poursudo
), ou simplement vous connecter en tant que root.Donc, s’ils affichent leurs commandes ici sans
sudo
qu’ils supposent que le lecteur utilisera simplement son moyen préféré d’exécuter ces commandes en tant que superutilisateur.Cela ne signifie certainement pas qu'ils peuvent exécuter ces commandes en tant qu'utilisateur normal.
la source
sudo -i
ou similaire pour obtenir un shell root, puis commencer à exécuter vos commandes root sans avoir besoin de préfacer chacune d'elles avecsudo
# vi /etc/hosts
au lieu d'une invite non privilégiée$ vi /etc/hosts
(Bash suivra la convention si vous utilisez\$
inPS1
)Une fonctionnalité de sécurité offerte par
sudo
est que vous pouvez avoir un système sansroot
mot de passe , de sorte que l'root
utilisateur ne peut pas se connecter directement. Cela offre une protection supplémentaire aux utilisateurs qui choisissent des mots de passe faibles - l'attaquant essayant de forcer brutalement le mot de passe (via SSH ou autrement) devra d'abord trouver un nom d'utilisateur valide.Un autre aspect est une gestion des privilèges plus fine. Pensez à
make; sudo make install
faire vs enmake; make install
tant que root. Beaucoup de choses peuvent mal tourner pendantmake
. Un outil mal configuré peut essayer d’écraser un fichier système important, "nettoyer" le/lib
répertoire en lieu et place , utiliser toute la mémoire vive disponible et suspendre le système, etc.make install
est une petite action simple avec beaucoup moins de probabilité d’erreur fatale.la source
Le fait est qu'historiquement, un système est réellement destiné à être partagé par plusieurs utilisateurs qui se connectent, effectuent des tâches, puis se déconnectent. Ainsi, la distinction entre admin et utilisateur normal. De tels systèmes existent toujours dans les laboratoires universitaires et vous pouvez ressentir la différence de manière très nette si vous utilisez de tels ordinateurs. Le PC personnel dont vous êtes le seul utilisateur et qui doit également agir en tant qu’administrateur est un développement beaucoup plus tardif.
la source
Un ordinateur est un outil. Essayons une analogie avec un autre outil, disons une poêle à frire. Parfois, vous devez prendre soin de votre poêle à frire. Par exemple, vous devez le nettoyer avec du savon à vaisselle. Diriez-vous que le savon à vaisselle est un ingrédient indispensable de toute recette pour laquelle vous utilisez la poêle à frire? Vous ne verrez jamais le "savon à vaisselle" répertorié comme ingrédient dans les livres de cuisine. C'est nécessaire, mais la préparation de l'outil est une autre affaire, donc les livres de cuisine ne le mentionnent pas. La poêle à frire doit être nettoyée, mais ce n’est pas son utilité.
C'est un peu la même chose pour votre ordinateur. Il doit être configuré et pris en charge, mais ce n’est pas ce pour quoi il est fait. Vous vous en occupez, vous le configurez pour qu'il puisse fonctionner correctement. Une fois que cela est fait, vous pouvez l'utiliser, non pas en tant qu'administrateur système, mais en tant qu'utilisateur. C'est pour ça que c'est fait. Lorsque vous êtes utilisateur, vous n'avez plus besoin de sudo . Utilisez simplement l'outil que vous avez préparé à l'avance. Bien sûr, de temps en temps, vous devrez utiliser les privilèges root, tout comme vous devez nettoyer votre poêle à frire aussi souvent que vous l'utilisez pour cuisiner.
Donc, sans trop exagérer, nous pourrions dire que vous n’avez jamais besoin de sudo (ni du mot de passe root) pour utiliser votre ordinateur. Seulement pour préparer votre ordinateur.
la source
sudo
ou vous pouvez simplement aller maître cuisinier et faire unsu
.Je parie que c'est parce que vous utilisez un logiciel d'interface graphique pour tout, à l'exception des tâches d'administration système, ou que vous parlez de serveurs Linux, auquel cas l'accès se fera naturellement par l'administration système. Par conséquent, vous pourriez avoir envie de faire quoi que ce soit dans la coquille
sudo
.Il est également possible d'utiliser la coque pour vos tâches quotidiennes. Gérer vos fichiers personnels
~
, éditer des fichiers, discuter sur IRC, compiler du code, naviguer sur le Web, tout cela est faisable dans un shell. J'utilise mêmebc
comme calculatrice de prédilection. Certaines choses sont plus faciles à faire via une interface graphique, d'autres via le shell - même si vous préférez utiliser l'interface graphique, le shell excellera souvent dans les opérations par lots et l'automatisation (pensez aux scripts shell). Personnellement, j'utilise celui qui convient le mieux à la tâche à accomplir.Dans certains cas, il peut être judicieux de configurer votre système de sorte que vous n’ayez pas besoin de l'utiliser à
sudo
chaque fois pour des opérations nécessitant par défaut un accès root, mais ne causant probablement pas de problèmes. Un exemple est que je travaille avec du matériel qui implique l’utilisation de ports série et que j’ai configuré des règles udev pour permettre l’accès aux périphériques en tant qu’utilisateur normal sans être obligé d’être root.Je ne pense pas que ce soit une bonne idée de configurer
sudo
pour ne pas exiger un mot de passe. Il est trop facile de gâcher tout votre système avec une seule commande ou un script malveillant.Si vous devez effectuer des tâches qui requièrent absolument tout le temps root, pourquoi ne pas laisser un
sudo -s
shell racine persistant s'exécuter dans une fenêtre de terminal? Ensuite, il sera disponible sans avoir à saisir le mot de passe, et son utilisation n'est pas aussi simple par inadvertance. J'ai même configuré mon invite de shell pour qu'elle soit rouge vif dans un shell racine.la source
L'adjectif implicite lié à tous ces derniers est qu'ils sont l' échelle du système ou mondiaux changements. Vous devez considérer les origines d'Unix en tant que système multi-utilisateur 1 où plusieurs utilisateurs utiliseraient la même installation à distance. Cela n'aurait aucun sens pour un utilisateur profane d'autoriser la modification des paramètres globaux pour tous les utilisateurs. C'était l'administrateur système, la racine, le privilège et la responsabilité.
Dans un environnement multi-utilisateur, vous avez le logiciel préinstallé et sa configuration à l’échelle du système sous
/usr
et/etc
respectivement. Toucher ces emplacements nécessiterait des autorisations root. Mais comme le logiciel Unix est conçu pour les utilisateurs multiples, vous pouvez le compiler et l’installer dans le$HOME
répertoire 2 et disposer de vos propres fichiers de configuration sous votre domicile, où vous pouvez les éditer librement sans être un super utilisateur.En plus d'installer votre propre logiciel chez vous, la plupart des logiciels à l'échelle du système liront la configuration spécifique à l'utilisateur dès la
$HOME
première lecture de la configuration/etc
. Cela vous permet de personnaliser presque tout sans jamais y allerroot
.Avec un PC à la maison, en un seul utilisateur principal, vous pouvez utiliser
sudo
et accéder à ce que vous voulez. Mais il est de coutume de ne pas toucher à la configuration de l'application/etc
mais de toujours fournir une configuration spécifique à l'utilisateur chez soi. De cette façon, vous pouvez permettre à votre gestionnaire de paquets de réinitialiser les configurations à l’échelle du système lors des mises à niveau. L’installation d’un nouveau logiciel à l’échelle du système est plutôt acceptable dans le cas d’un utilisateur unique; les paquets de distribution n'assument pas les alternatives, c'est donc un moyen facile de s'en sortir.Je laisserai mon gestionnaire de paquets installer les éléments globalement, mais je laisserai tous les éléments compilés à partir de sources et créés par mes soins
$HOME
. Et je n'ai pas besoin de me demander quoi que ce soit.Si vous avez des fichiers de données, un stockage en dehors de votre ordinateur
$HOME
, n'hésitez pas àchown
ouchgrp
les répertoires à votre nom afin que vous puissiez accéder aux fichiers sanssudo
.[1] (légèrement ironique étant donné qu'Unix était censé être une version «utilisateur unique» du système d'exploitation Multics)
[2] (si le système le permet en ne montant pas les partitions domestiques en tant que noexec)
la source
Dans les types de systèmes multi-utilisateurs pour lesquels UNIX (et par descendance, Linux) a été conçu, ce ne sont pas des actions utilisateur ordinaires . Un administrateur système peut les exécuter, mais pas des utilisateurs types. Le système demande donc de s’assurer que l’administrateur système veut réellement le faire.
Mais même dans les systèmes domestiques à utilisateur unique, ces actions ne sont pas ordinaires . Vous devrez généralement les faire lors de la configuration initiale du système, mais une fois l’opération terminée, un utilisateur type ne devrait pas avoir à les faire très souvent . La plupart des utilisateurs typiques ne travaillent que sur des fichiers situés dans leur répertoire de base (ou dans leurs sous-répertoires), à l'aide de programmes / packages déjà installés, sans que cela ne soit nécessaire
sudo
. Ou bien ils peuvent travailler dans un répertoire spécial ailleurs sur le système qui a été mis de côté à cette fin, et vous devezsudo
le configurer, mais vous n'avez généralement besoin que de le faire une fois.Pourquoi est-ce important? Parce que "utilisateur unique" est un terme impropre: vous n’êtes pas le seul utilisateur de votre machine, même si vous en êtes le seul utilisateur humain . Même sur une installation Linux domestique typique, de nombreux programmes sont configurés pour utiliser la machine de différentes manières, simulant souvent ce que pourrait faire un humain s’il avait le temps et l’attention dont il disposait: sauvegardes, mises à jour, analyse des programmes malveillants, etc. comme. La plupart du temps, ces utilisations sont totalement bénignes, mais même pour certaines d'entre elles, il est toujours prudent de s'assurer que l'utilisateur souhaite réellement le faire. Et quand ces cas se présentent, c'est ce qui
sudo
est fait. L'ordinateur vérifie juste pour vous assurer que c'est vraiment vous qui voulez faire ce que quelqu'un (peut-être vous, peut-être un programme) a-t-il dit. Et cela n’entre même pas dans la possibilité de programmes malveillants, que vous ne voudrez certainement pas dissimuler en tant que tels.la source
Ce n'est probablement pas aussi courant que ce qui est représenté, mais cela se produit généralement lorsque quelque chose de banal en interne nécessite un appel système beaucoup plus générique pour obtenir son résultat, par exemple:
umount
est une commande sérieuse que vous pouvez démonter beaucoup de choses avec elle.ifup
, etc.) est réservée au superutilisateur.Les systèmes évoluent généralement pour réduire le nombre de ces cas. Les clés USB sont maintenant montables par l'utilisateur et les réseaux sont connectables par l'utilisateur. Mais ce n'était pas toujours comme ça.
la source
Hypothèse: c'est votre système et vos données.
Vous devez juste peser le risque d'effacer accidentellement des données ou de casser votre système d'exploitation par rapport à la facilité de faire des choses sans taper à
sudo
chaque fois.Je me connecte régulièrement et travaille en tant que root sur mes serveurs domestiques car
je peuxc'est plus facile.On vous dira que vous pouvez lancer des armes nucléaires si vous ne passez pas par le sacro-saint,
sudo
mais la réalité est qu’aujourd’hui, les gens ont desroot
pouvoirs (*) sur de nombreux appareils (votre télévision, votre téléphone, votre grille-pain, votre Windows). vous avez mentionné)). Linux n’est pas différent ici, même si beaucoup aiment penser autrement.BTW
UAC
n’a pas été conçusudo
comme son rôle d’homme (en plus de rendre votre vie misérable) pour que vous puissiez voir quand un programme malveillant veut faire quelque chose pour vous.(*) Les
root
pouvoirs sont définis comme la capacité de détruire des données importantes. L'adage "avec un grand pouvoir vient avec de grands problèmes" (ou quoi que ce soit d'autre) s'applique.Si mon hypothèse est fausse, vous devez quand même pondérer le risque ci-dessus, mais il y a plus de variables (votre travail, les photos prises par votre conjoint et stockées sur le même ordinateur portable, ...)
la source
rm -rf ~/
sans autorisations spéciales. D'autre part, vous ne pouvez pas maquiller votre téléphone portable ou votre télévision sans l'enraciner au préalable.À la défense de la personne qui a rédigé la question initiale, j’avais eu la même question il ya des années, mais j’ai adopté une approche différente.
La plupart des réponses ici pourraient être jouées en boucle, car elles insistent toutes sur le même point concernant sudo et root. Permettez-moi d'ajouter une perspective différente à ce sujet:
J'ai appris à fond Unix ET Linux en utilisant l'un de mes ordinateurs comme un "cobaye". J'installerais SCO Linux, et éventuellement Solaris, puis Linux beaucoup plus tard, tout en expérimentant joyeusement en tant que root pour pouvoir lire et / ou explorer la hiérarchie des répertoires et tous les fichiers avec un accès illimité, en créant également des comptes "utilisateur normal" sur mon domicile. multi-utilisateurs, même si j’étais le seul utilisateur. Et je suis content de l'avoir fait ainsi. J'ai tellement appris sur la "philosophie Unix" et sur la manière dont Unix était destiné à être utilisé par mes expériences.
J'ai eu beaucoup de plaisir à apprendre la sécurité et à exécuter des commandes dangereuses en tapant rm -rf / * dans un terminal en tant que root. (NE FAITES PAS CELA! IL SERA DONNÉ VOTRE SYSTÈME !!) J'ai fait des choses comme celle-ci et bien d'autres commandes, histoire de voir ce qui se passerait en temps réel. J'ai fait ce genre de choses en connaissant les conséquences d'avance, mais j'ai quand même beaucoup appris en le faisant. J'utilisais SCO Unix LONG avant même que le Web n'existe (oui, je suis si vieux!) Et expérimenter de cette manière m'a été d'une aide inestimable pour mon apprentissage.
Donc, ce que je dis, c'est que si vous ne craignez pas de ré-installer quand quelque chose ne va pas, utilisez su ou connectez-vous en tant que root et configurez / hack away! Ce faisant, vous en apprendrez beaucoup.
Rappelez-vous simplement que les conseils qui ont été répétés ici ont été réitérés pour une bonne raison: les protocoles de meilleures pratiques ont évolué au fil des décennies au fur et à mesure que compsec a évolué, et vous DEVEZ y prêter attention, même en tant qu'utilisateur individuel ou à la maison de votre système. . Ce faisant, une bonne hygiène / les habitudes de votre administrateur système deviendront une seconde nature pour vous.
Juste quelques pistes de réflexion sur le sujet su et sudo. Joyeux piratage!
la source