215 votes

Pourquoi est-ce mauvais de se connecter en tant que root ?

J'ai souvent rencontré des messages sur des forums ou d'autres sites web où l'on voit des gens plaisanter sur le fait de se connecter en tant que root comme si c'était quelque chose d'horrible et tout le monde doit le savoir. Cependant, une recherche ne révèle pas grand-chose sur le sujet.

C'est peut-être connu des experts de Linux, mais je ne sais vraiment pas pourquoi. Je me souviens avoir toujours fonctionné en tant que root lorsque j'ai essayé Linux pour la première fois il y a des années (Redhat et Mandrake) et je ne me souviens pas avoir rencontré de problèmes à cause de cela.

Il existe en fait certaines distributions qui ont un fond rouge vif avec des signes d'alerte partout comme fond d'écran pour l'utilisateur root (SuSe ?). J'utilise toujours le compte "Administrateur" pour un usage régulier sur mon installation Windows et je n'ai jamais rencontré de problèmes non plus.

169voto

Ilya Points 2279

Cela va à l'encontre du modèle de sécurité qui est en place depuis des années. Les applications sont censées être exécutées avec une sécurité non administrative (ou en tant que simples mortels). Il faut donc élever leurs privilèges pour modifier le système sous-jacent. Par exemple, vous ne voudriez pas que le récent plantage de Rhythmbox efface toute votre base de données. /usr en raison d'un bogue. Ou cette vulnérabilité qui vient d'être publiée dans ProFTPD pour permettre à un attaquant d'obtenir un ROOT Shell.

La bonne pratique, quel que soit le système d'exploitation, est d'exécuter vos applications au niveau de l'utilisateur et de laisser les tâches administratives à l'utilisateur root, et uniquement en fonction des besoins.

87voto

Vojtech Trefny Points 14011

Un seul mot : sécurité.

  1. Vous êtes connecté en tant que root = toutes les applications sont exécutées avec les privilèges de root - chaque vulnérabilité dans Firefox, Flash, OpenOffice etc. peut maintenant détruire votre système, parce que les virus possibles ont maintenant accès partout. Oui, il n'y a que peu de virus pour Ubuntu/Linux, mais c'est aussi à cause de la bonne sécurité et de l'utilisateur non privilégié par défaut.
  2. Il ne s'agit pas seulement de virus : un petit bug dans une application peut effacer certains fichiers système ou...
  3. Lorsque vous êtes connecté en tant que root, vous pouvez tout faire - le système ne vous le demandera pas ! Voulez-vous formater ce disque ? Ok, juste un clic et c'est fait, parce que vous êtes root et que vous savez ce que vous faites...

53voto

Aamir Points 135

Courir en tant que root est mauvais parce que :

  1. Stupidité : Rien ne vous empêche de faire quelque chose de stupide. Si vous essayez de modifier le système d'une manière qui pourrait être nuisible, vous devez faire sudo, ce qui garantit une pause pendant que vous entrez le mot de passe pour que vous réalisiez que vous êtes sur le point de faire un changement important/coûteux.
  2. Sécurité : Cela a déjà été mentionné plusieurs fois dans cette question, mais en gros c'est la même chose, plus difficile à pirater si vous ne connaissez pas le compte de connexion de l'utilisateur administrateur. root signifie que vous avez déjà la moitié de l'ensemble des informations d'identification de l'administrateur.
  3. Vous n'en avez pas vraiment besoin : Si vous devez exécuter plusieurs commandes en tant que root et que vous êtes ennuyé par le fait de devoir entrer votre mot de passe plusieurs fois lorsque sudo a expiré, tout ce que vous avez à faire est de sudo -i et vous êtes maintenant la racine. Vous voulez exécuter des commandes à l'aide de pipes ? Utilisez alors sudo sh -c "comand1 | command2" .
  4. Vous pouvez toujours l'utiliser dans la console de récupération : La console de récupération vous permet d'essayer de récupérer après avoir fait quelque chose de stupide ou après avoir corrigé un problème causé par une application (que vous avez quand même dû exécuter en tant que sudo :)) Ubuntu n'a pas de mot de passe pour le compte root dans ce cas mais vous pouvez chercher en ligne pour changer cela, cela rendra plus difficile pour quiconque ayant un accès physique à votre boîte de pouvoir faire du mal.

La raison pour laquelle vous n'avez pas pu trouver d'informations sur les raisons pour lesquelles il est mauvais est qu'il y a beaucoup trop de données sur Internet :) et que beaucoup de personnes qui utilisent Linux depuis longtemps pensent comme vous. Cette façon de penser au compte root est assez récente (une décennie peut-être ?) et beaucoup de gens sont encore agacés de devoir utiliser sudo. Surtout s'ils travaillent sur un serveur, ce qui signifie qu'ils y sont entrés avec l'intention d'apporter des modifications au système. Probablement à cause de mauvaises expériences antérieures et des normes de sécurité, la plupart des administrateurs système savent mieux faire, mais ils n'aiment toujours pas ça :).

39voto

Donovan Woodside Points 1288

C'est une bonne question. Je pense que la réponse est légèrement différente selon que l'on parle d'un serveur ou d'une installation de bureau.

Sur un ordinateur de bureau, il est rare d'utiliser l'option root compte. En fait, Ubuntu est livré avec l'accès root désactivé. Toutes les modifications nécessitant les privilèges du super-utilisateur sont effectuées par l'intermédiaire de sudo et ses équivalents graphiques gksudo y kdesudo . Étant donné qu'il est facile de définir un root mot de passe, cependant, pourquoi les gens ne le font-ils pas ?

L'une des raisons est que cela vous donne une couche supplémentaire de sécurité. Si vous exécutez un programme en tant que root et qu'une faille de sécurité est exploitée, l'attaquant a accès à toutes les données et peut contrôler directement le matériel. Par exemple, il peut installer un cheval de Troie ou un enregistreur de frappe dans votre noyau. Dans la pratique, cependant, une attaque peut faire beaucoup de dégâts même sans les privilèges de superutilisateur. Après tout, toutes les données de l'utilisateur - y compris les documents et les mots de passe stockés - sont accessibles sans accès root.

Un point plus valable, sur un système mono-utilisateur, est que l'utilisateur est empêché de rendre accidentellement le système inutilisable. Si l'utilisateur lance involontairement une commande qui supprime tous les fichiers, il pourra toujours démarrer le système, même si les données sont perdues.

En outre, la plupart des applications orientées vers l'utilisateur (X11) sont aujourd'hui construites en partant du principe qu'elles sont exécutées avec un compte utilisateur normal et sans droits d'administrateur. Ainsi, certains programmes peuvent se comporter de manière incorrecte lorsqu'ils sont exécutés en tant que root .

Sur un système multi-utilisateurs avec un accès non graphique Shell uniquement, beaucoup de ces raisons ne s'appliquent pas. Cependant, Ubuntu utilise encore raisonnablement par défaut une version inaccessible de root compte. D'une part, il existe une réelle différence entre le fait d'accéder à un compte d'utilisateur (avec sudo ) à travers une faille de sécurité et d'obtenir un accès à root comme dans le premier cas, la perturbation d'autres utilisateurs nécessitera l'exécution de sudo et demandera toujours le mot de passe du compte comme mesure de sécurité supplémentaire. D'autre part, il est utile d'effectuer de nombreuses tâches administratives à partir d'un compte d'utilisateur et de n'invoquer que le mot de passe du compte. sudo lorsque les privilèges du super-utilisateur sont absolument nécessaires. Ainsi, lors de l'installation d'un programme à partir des sources, il est conseillé de construire les sources - en exécutant configure y make - dans le répertoire de l'utilisateur et en utilisant uniquement sudo make install dans la dernière étape. Encore une fois, cela rend plus difficile le fait de se tirer une balle dans le pied (et dans celui des autres utilisateurs du système multi-utilisateurs), et cela diminue la probabilité que les scripts de construction fassent des ravages dans le système. Ainsi, même sur un serveur, il est bon de s'en tenir à la méthode de construction d'Ubuntu. administration basée sur sudo .

34voto

John Kugelman Points 1709

Une raison de ne pas se présenter comme racine qui n'a pas (jusqu'à présent) été identifiée par d'autres réponses est la traçabilité. Cela a probablement moins d'importance sur les machines qui sont principalement des machines mono-utilisateur (votre ordinateur de bureau ou portable), mais sur les machines serveur, si quelqu'un est connecté en tant que root vous ne savez pas qui blâmer pour les actions entreprises. C'est pourquoi la plupart des organisations professionnelles disposant de plusieurs systèmes et de plusieurs administrateurs qui doivent root Les privilèges exigent que les personnes se connectent à l'aide de leur propre ID utilisateur (et mot de passe), et utilisent ensuite sudo ou des programmes similaires pour fonctionner avec root les privilèges lorsque cela est nécessaire.

Sinon, les principales raisons de ne pas se présenter comme root sont :

  • Réduire au minimum les risques de dommages dus aux accidents. Si vous courez rm -fr / home/me/my-subdir en tant que root, vous venez d'éliminer radicalement tout ce qui est important sur votre machine à cause de cet espace après la (première) barre oblique - parce que les choses qui vont en premier sont celles qui ont été ajoutées en premier - des petites choses comme le noyau, le système d'exploitation et le système de gestion de l'information. /bin et le /etc répertoire. Unix s'énerve si vous les perdez.

  • Minimisez le risque de dommages causés par des sites extérieurs malveillants. Si vous naviguez en tant que root vous êtes plus vulnérable aux téléchargements de matériel malveillant.

J'utilise MacOS X plus qu'Ubuntu, mais là, root est désactivé par défaut, et il l'est toujours sur ma machine. Je mets régulièrement à jour le noyau et d'autres opérations similaires - en utilisant sudo (dans les coulisses). Des techniques similaires s'appliquent à Linux en général.

Fondamentalement, vous ne devriez utiliser que les privilèges tout-puissants de root pour des périodes de travail abrégées afin d'éviter le risque d'erreurs.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X