Quel est le problème avec toujours être root?

83

J'ai l'impression que c'est une question stupide, mais c'est quelque chose que je me suis demandé depuis un moment.

J'ai un VPS et c'est ma première grande entreprise Linux. Je suis la seule personne qui y a accès. Ma question est la suivante: qu'est-ce qui ne va pas si vous vous connectez en tant qu'utilisateur root plutôt que de créer un compte et de leur donner un accès sudo? Si un sudoer peut faire tout ce que root peut faire, alors quelle est la différence? Si un pirate informatique peut déchiffrer mon mot de passe pour mon compte standard non-root, il peut également exécuter des commandes sudo. Comment un pirate piratant mon compte root compte-t-il plus ou moins?

Ryeguy
la source
28
Je dirais également que si vous n'êtes pas familier avec "Unix Way", ce n'est pas une question stupide. Vous devriez avoir un bonus pour penser à poser la question en tant que nouvel administrateur Linux.
Bart Silverstrim
Et j'aimerais commenter certaines des réponses. Particulièrement ceux qui disent "vous pouvez bousiller des choses étant root". Je ne pense pas que ce soit le but ... "rm -rf /" fait la même chose que "sudo rm -rf /". Le problème réside dans le fait que des choses comme "sudo rm" ne fonctionnent pas, mais que "sudo startMyApp sur port faible" fonctionne.
Zlatko
qu'est-ce qui ne va pas avec ne jamais être?
ostendali

Réponses:

70

Si vous êtes connecté en tant que root, vous pouvez facilement effacer des répertoires ou faire quelque chose qui, rétrospectivement, est vraiment stupide sur le système, d'un simple geste du doigt, alors qu'en tant qu'utilisateur, vous devez normalement mettre quelques cycles mentaux supplémentaires dans votre 'taper avant de faire quelque chose de dangereux.

Tous les programmes que vous exécutez en tant que root en tant que privilèges root, c'est-à-dire si quelqu'un ou quelque chose vous oblige à exécuter / compiler / naviguer sur un site Web dangereux et qui veut endommager votre système, tel qu'un cheval de Troie ou un autre programme malveillant, ont pleinement accès à votre système. système et peut faire ce qu’il veut, y compris l’accès aux ports TCP inférieurs à 1024 (afin de transformer votre système en réémetteur à votre insu, par exemple).

En gros, vous demandez en quelque sorte que des problèmes vous empêchent de vous connecter vous-même. J'ai rencontré de nombreuses personnes qui ont fini par être heureuses de disposer de ce filet de sécurité après un moment d'inattention.

EDIT: Il y a aussi le problème de la racine étant la cible la plus connue, donc une cible facile, pour les scripts et les hacks. Les systèmes qui désactivent le compte et obligent les utilisateurs à utiliser sudo signifient que toute tentative de casser la racine de ssh ou un exploit local sur le compte se heurte à un mur. Il leur faudrait deviner / déchiffrer un mot de passe et un nom d'utilisateur. C'est un peu la sécurité par l'obscurité, mais il est difficile d'affirmer que cela ne fait pas échec à la plupart des attaques de script pour enfants.

Bart Silverstrim
la source
25
+1 - L'utilisation de "sudo" rend l'exécution de programmes en tant que root un acte manifeste. Il ne s'agit pas de "stopper les pirates", mais de vous habituer à travailler en tant qu'utilisateur non privilégié et à faire de l'invocation des privilèges root un acte manifeste et intentionnel.
Evan Anderson
2
Je commence à me demander si Evan est vraiment un IA.
Bart Silverstrim
11
Sudo ajoute également une piste d'audit. En tant que qui, quoi et quand est enregistré lorsqu’il est exécuté en tant que sudo. Le fichier journal peut varier avec la distribution, mais les distributions RedHat ont tendance à utiliser / var / log / secure et Ubuntu utilise /var/log/auth.log... Je ne sais pas si cela est vrai pour toutes les distributions basées sur Debian.
3dinfluence
3
+1 - il ne s'agit pas seulement de droits de créer ou de faire des choses, il s'agit également de droits de destruction. Se connecter en tant que root (ou l’équivalent sur tout autre système d’exploitation) est comme se promener avec une arme à feu en sécurité. Vous pourriez ne jamais toucher intentionnellement ce déclencheur, mais vous feriez-vous confiance pour le faire tout de même?
Maximus Minimus
3
mh: / moi met son chapeau de cow-boy, enlève la sécurité de son pistolet, ouvre une bière, marmonne dans un grognement sourd et raconte quelque chose à propos de pensées, puis ouvre une session en tant que root.
Kyle Brandt
29

Si vous ne permettez pas à un idiot de se connecter à votre serveur en tant que root, ne vous lancez pas toujours en tant que root. À moins que vous ne puissiez vous dire ce que vous pensez, vous n’avez jamais été un idiot. Pas vraiment? Vous êtes sûr? :)

Avantage: réduit la possibilité d'être simultanément root et idiot.

Tom Newton
la source
6
+1 - "Avantage: réduit la possibilité d'être simultanément root et idiot." J'adore ça
Evan Anderson
+1 pour la philosophie de Scott Adams selon laquelle tout le monde est un idiot. :) Oui, cela signifie que vous et moi aussi.
Ernie
Absolument. C’est l’une de mes principales questions lors des entretiens d’emploi. Quand avez-vous tout gâché pour la dernière fois? Tout le monde a, il vous suffit de lire les discussions ici sur "le plus divertissant sysadmin fubar" ou autre. Si quelqu'un n'admet pas avoir commis une véritable erreur stupide au moins une fois dans sa vie, il y a probablement une poignée de raisons pour lesquelles vous ne souhaitez pas travailler avec elles.
Tom Newton
9

La principale raison est des erreurs. Si vous êtes toujours root, une simple faute de frappe peut vraiment bousiller le système. Si vous vous connectez uniquement en tant que root ou utilisez sudo pour effectuer des tâches qui le nécessitent, vous minimisez le risque de commettre une grave erreur.

Kyle Brandt
la source
9

Lorsque vous êtes root, vous êtes paresseux en matière d'autorisations, puisque vous avez accès à tout, à tout moment, vous ne vous en souciez plus, que ce soit 777 ou 644, ou autre. Donc, si jamais vous laissez quelqu'un d'autre sur votre système vous interdire l'accès à tout, il devient soudainement très difficile de rendre la machine plus sûre pour une autre personne.

Stu
la source
5
C'est ce qu'on appelle "la pourriture des racines".
kmarsh
1
J'aime ce terme, "pourriture racinaire". En effet, s’exécuter en tant que root à tout moment peut transformer les machines * nix en machines de type Windows 95 bizarres sans aucune apparence de sécurité multi-utilisateurs. (Je me souviens d'une machine SCO, il y a des années, où chaque utilisateur de l'application de comptabilité partagée s'exécutait en tant que root parce que "les problèmes d'autorisation disparaissaient".> Sigh <)
Evan Anderson
Je me souviens d’avoir eu une explication comme celle-là: ils avaient un outil de liste de diffusion fonctionnant sous root, avec sendmail. Ma réponse a été "Les problèmes de permission ont également disparu pour les pirates."
duffbeer703
7

Ne vous connectez pas en tant que root à quelques principes clés: 1) Le mot de passe root n’est jamais envoyé sur le réseau au moment de la connexion. 2) Il est impossible de dire qui a fait quelque chose si plusieurs utilisateurs se connectent avec le même compte (root ou autre). 3) Faire accidentellement quelque chose de "stupide"

Jeff Hengesbach
la source
3

C’est davantage une protection contre vous-même, ce qui vous donne une seconde chance d’examiner les commandes de privilège plus élevé que vous essayez d’exécuter, comme dans le cas du contrôle de compte d'utilisateur (UAC) de Windows. Il est assez facile de faire quelque chose par accident en rm -rf /étant connecté en tant que root.

De plus, vous avez la traçabilité. Ce n'est pas un gros problème dans votre situation où vous êtes le seul à émettre des commandes (théoriquement), mais la possibilité de se connecter et de retracer un individu est un élément clé de nombreuses formes d'analyse.

écailleur
la source
La traçabilité est cruciale dans les systèmes où plusieurs personnes travaillent en tant qu'administrateur système. Ce n’est pas seulement souhaitable que cela soit imposé par les régimes de réglementation.
APC
Je l'ai fait vendredi. au lieu de supprimer "/ dump / folder /", j'ai supprimé le dossier /. Une barre oblique inversée puante m'a rappelé pourquoi nous ne nous connectons pas en tant que root.
oneodd1
2

La différence est principalement
que vous ne pouvez rien faire de mal par accident.
ce code "diabolique" ne peut pas prendre le contrôle du système.
Remarque: le code maléfique ne signifie pas nécessairement que quiconque a déjà accès au système.

StampedeXV
la source
J'ai remarqué que ces jours-ci, le code maléfique signifie généralement des robots de spam, qui peuvent fonctionner comme n'importe quel utilisateur.
Ernie
Si vous pensez à un virus (essayant de détruire quelque chose) ou à un rootkit, le malware est beaucoup plus compliqué si vous n'êtes pas un root.
StampedeXV
2

Vous devez toujours utiliser des comptes avec le niveau de privilège le plus bas possible. Courir en tout temps en tant que racine encourage les mauvaises habitudes et la paresse qui rendront la vie désagréable lorsque vous travaillez avec plusieurs utilisateurs ou exposez quelque chose à un réseau public / semi-public.

N'oubliez pas non plus que la fissuration du mot de passe n'est qu'un scénario de compromis, et qu'il ne s'agit pas non plus du scénario le plus courant. Vous êtes plus susceptible d'être victime d'une vulnérabilité de navigateur ou d'une vulnérabilité de certains démons s'exécutant sur votre système.

Pensez au code que vous utilisez sans réfléchir. Par exemple, le port Linux d'Adobe Flash, qui est une pile de caca fumante qui n'est devenue utilisable que dans un passé relativement récent. À quel point pensez-vous que ce code est sécurisé? Voulez-vous que cela soit en mesure d'exercer un contrôle total de votre système?

duffbeer703
la source
2

Il peut empêcher les attaques par force brute de SSH. Chaque unix a un compte 'root'. Cependant, de l'extérieur, votre nom d'utilisateur «sudo» n'est pas clair. Par conséquent, si quelqu'un veut essayer de faire usage de la force brutale, il sait qu'il existe un compte root et va probablement l'essayer. Cependant, ils ne savent pas par où commencer si vous utilisez sudo.

Rory
la source
1

Mon conseil serait d’essayer d’utiliser root tout le temps; vous découvrirez bientôt pourquoi vous ne devriez pas :)

Chopper3
la source
1

Même si je ne fais pas confiance à "security by obscurity", il y a sûrement un avantage à utiliser un identifiant personnalisé au lieu d'un identifiant root existant. Vous pouvez donc également configurer SSH pour empêcher la connexion root.

Comme d'autres l'ont également dit, root peut tout faire sans aucune confirmation. Donc, utiliser un utilisateur non privilégié peut éviter les erreurs stupides et les fautes de frappe.

Un autre argument en faveur de plusieurs comptes d'utilisateurs est d'exécuter différents logiciels sous différents utilisateurs. Ainsi, si une faille de sécurité est exploitée dans une application, l’exploiteur ne peut accéder qu’aux fichiers et aux ressources accessibles à son utilisateur en cours d’exécution.

Un dernier point pour ne pas utiliser root: la consommation de ressources. Root n’a aucune limite sur la quantité de mémoire, le temps de traitement, les gestionnaires de fichiers ou l’espace disque qu’il peut utiliser. Sur beaucoup de systèmes de fichiers, il y a des blocs de données qui sont réservés uniquement à root. Ainsi, un utilisateur normal ne peut jamais les utiliser pour remplir votre disque. La commande ulimit peut également être utilisée pour limiter la mémoire et le numéro de gestionnaire de fichiers qu'un utilisateur peut consommer. Mais si vous êtes root (ou une application fonctionnant en tant que root), rien ne vous empêche de modifier cette limite.

Rolaf
la source
0

Oui, je suis d'accord avec vous et je pense que c'est une question de protection contre les erreurs humaines et parfois contre les programmes malveillants. La mauvaise chose que je n'ai jamais vue, c'est d'utiliser root comme compte gnome par défaut.
Je pense que la plupart des utilisateurs qui font cela sont les utilisateurs Windows récemment migrés vers Linux ou Unix. Essayez de copier l'utilisation du privilège d'administrateur sur root.

Ali Mezgani
la source
0

Il n'y a rien de mal à être connecté en tant que root. Il aide à développer la mémoire musculaire en ne tapant que des commandes sûres et favorise la précision de la pensée lorsque vous effectuez des actions avec des conséquences graves. Je recommande fortement de travailler en tant que root pour améliorer l'administration du système.

vous pouvez également faire des choses cool comme ping -i 0.2 -c 1000 example.com

lee
la source