Question Pourquoi est-il mauvais de se connecter en tant que root?
J'ai souvent rencontré des publications sur des forums ou d'autres sites Web où l'on voyait des gens qui plaisantaient à propos de l'exécution / connexion en tant que root, comme si c'était quelque chose de terrible et toutes les personnes devrait le savoir. Cependant, une recherche ne révèle pas grand chose à ce sujet.
Il peut être largement connu des experts Linux, mais je ne sais vraiment pas pourquoi. Je me souviens d'avoir toujours fonctionné en tant que root lorsque j'ai essayé Linux pour la première fois il y a plusieurs années (Redhat et Mandrake) et que je ne me souviens pas avoir rencontré de problèmes à cause de cela.
Il y a en fait des distributions qui ont un fond rouge clair avec des signes d'alerte partout comme fond d'écran pour l'utilisateur root (SuSe?). J'utilise toujours le compte "Administrateur" pour une utilisation régulière sur mon installation Windows et je n'ai jamais rencontré de problème non plus.
179
2017-12-04 17:00
origine
Réponses:
Cela va à l'encontre du modèle de sécurité en place depuis des années. Les applications doivent être exécutées avec une sécurité non administrative (ou en tant que simples mortels). Vous devez donc élever leurs privilèges pour modifier le système sous-jacent. Par exemple, vous ne voudriez pas que le récent crash de Rhythmbox efface tout votre /usr
répertoire dû à un bug. Ou cette vulnérabilité qui vient d'être publiée dans ProFTPD pour permettre à un attaquant d'obtenir un shell ROOT.
Il est recommandé de faire fonctionner vos applications au niveau utilisateur sur n'importe quel système d’exploitation et de laisser les tâches administratives à l’utilisateur root, et uniquement sur une base spécifique.
145
2017-12-04 17:08
Juste un mot: la sécurité.
- Vous êtes connecté en tant que root = toutes les applications fonctionnent avec des privilèges root - toutes les vulnérabilités de Firefox, Flash, OpenOffice, etc. maintenant peuvent détruire votre système, car les virus possibles ont désormais accès partout. Oui, il n'y a que peu de virus pour Ubuntu / Linux, mais c'est aussi dû à une bonne sécurité et à un utilisateur non privilégié par défaut.
- Il ne s'agit pas seulement de virus - un petit bogue dans une application pourrait effacer certains fichiers système ou ...
- 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 ...
73
2017-12-04 17:10
Exécuter en tant que root est mauvais car:
- Stupidité: Rien ne vous empêche de faire quelque chose de stupide. Si vous essayez de changer le système de quelque manière que ce soit qui pourrait être nuisible, vous devez faire sudo, ce qui garantit quasiment une pause pendant que vous entrez le mot de passe pour vous rendre compte que vous êtes sur le point d'effectuer un changement important / coûteux.
- Sécurité: Il a déjà été mentionné à plusieurs reprises dans cette question, mais fondamentalement, 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.
- Vous n'en avez pas vraiment besoin: Si vous devez exécuter plusieurs commandes en tant que root et que vous êtes ennuyé de devoir saisir votre mot de passe plusieurs fois lorsque sudo a expiré, il vous suffit de
sudo -i
et vous êtes maintenant root. Voulez-vous exécuter des commandes en utilisant des tuyaux? Puis utilisez sudo sh -c "comand1 | command2"
.
- 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 quelque chose de stupide ou de résoudre un problème causé par une application (que vous deviez toujours utiliser comme sudo :)). Ubuntu n’a pas de mot de passe pour le compte root, mais vous pouvez le faire. rechercher en ligne pour changer cela, cela rendra plus difficile pour quiconque a un accès physique à votre boîte de faire du mal.
La raison pour laquelle vous ne pouvez pas trouver d'informations sur les raisons de ce problème est que, bien, 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 sur le compte root est relativement nouvelle (une décennie peut-être?) Et beaucoup de gens sont toujours agacés par l'utilisation de sudo. Surtout s'ils travaillent sur un serveur, c'est-à-dire qu'ils ont l'intention d'apporter des modifications au système. Probablement dû à de mauvaises expériences et à des normes de sécurité antérieures, la plupart des administrateurs système le savent mieux, mais ils ne l’aiment toujours pas :).
45
2017-12-04 18:43
C'est une bonne question. Je pense que la réponse est légèrement différente selon que vous parliez d'un serveur ou d'une installation de bureau.
Sur un ordinateur de bureau, il est rare d’utiliser le root
Compte. En fait, Ubuntu est livré avec un accès root désactivé. Toutes les modifications nécessitant des privilèges de superutilisateur sont effectuées via sudo
et ses proches graphiques gksudo
et kdesudo
. Étant donné qu'il est facile de définir un root
mot de passe, cependant, pourquoi les gens ne le font pas?
Une des raisons est que cela vous donne un niveau de sécurité supplémentaire. Si vous exécutez un programme en tant que root
et 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 trojan ou un key-logger dans votre noyau. En pratique, cependant, une attaque peut causer beaucoup de dégâts même sans les privilèges du superutilisateur. Après tout, toutes les données 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 le système inutilisable par inadvertance. Si l'utilisateur émet involontairement une commande qui supprime tous les fichiers, ils pourront toujours démarrer le système, même si les données sont perdues.
De plus, la plupart des applications (X11) destinées aux utilisateurs sont conçues pour être exécutées en tant que compte d'utilisateur normal et sans droits d'administrateur. Ainsi, certains programmes peuvent se comporter de manière incorrecte root
.
Sur un système multi-utilisateurs avec un accès shell non graphique uniquement, plusieurs de ces raisons ne s'appliquent pas. Cependant, Ubuntu reste toujours par défaut à un inaccessible root
Compte. D'une part, il y a une réelle différence entre l'accès à un compte utilisateur (avec sudo
droits) à travers une faille de sécurité et à accéder à root
, comme dans le premier cas, perturber d'autres utilisateurs nécessitera l'exécution sudo
et demandera toujours le mot de passe du compte comme étape 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 d'invoquer uniquement sudo
lorsque les privilèges du superutilisateur sont absolument requis. Ainsi, lors de l’installation d’un programme depuis le source, il est conseillé de créer le configure
et make
- à l'intérieur du répertoire de l'utilisateur et en utilisant uniquement sudo make install
dans la dernière étape. Là encore, il est plus difficile de se prendre en photo (et d’autres utilisateurs du système multi-utilisateurs), et cela réduit la probabilité que des scripts de génération perturbent le système. Ainsi, même sur un serveur, il est conseillé de s’en tenir à administration basée sur sudo.
36
2017-12-04 17:24
L'une des raisons de ne pas s'exécuter en tant que root qui n'a pas (jusqu'à présent) été identifiée par d'autres réponses est la traçabilité. Cela est probablement moins important sur les machines qui sont principalement des machines mono-utilisateur (votre ordinateur de bureau ou votre ordinateur portable), mais sur des machines serveur, si quelqu'un est connecté en tant que root
, vous ne savez pas à qui blâmer pour les mesures prises. Par conséquent, la plupart des organisations professionnelles avec plusieurs systèmes et plusieurs administrateurs ont besoin de root
les privilèges obligent les utilisateurs à se connecter avec leur propre identifiant (et mot de passe), puis à utiliser sudo
ou des programmes similaires pour fonctionner avec root
privilèges si nécessaire.
Sinon, les principales raisons de ne pas s'exécuter en tant que root sont les suivantes:
Minimiser les risques de dommages causés par des accidents. Si tu cours rm -fr / home/me/my-subdir
en tant que root, vous avez simplement éliminé tout ce qui est important de votre machine à cause de cet espace après le (premier) slash - parce que les choses qui vont en premier sont celles qui ont été ajoutées en premier - des petites choses comme le noyau, le /bin
et le /etc
annuaire. Unix s'énerve si vous les perdez.
Minimiser le risque de dommages causés par des sites extérieurs malveillants. Si vous naviguez comme root
, vous êtes plus vulnérable aux téléchargements de matériel malveillant.
J'utilise MacOS X plus que Ubuntu, mais là, root est désactivé par défaut, et il est toujours sur ma machine. Je mets régulièrement à niveau 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.
31
2017-12-04 23:10
TL; DR: Faites les choses en tant que root uniquement lorsque vous devez le faire. sudo
rend cela assez facile. Si vous activez les connexions root, vous pouvez toujours suivre cette règle, il vous suffit de faire attention à cela. Bien que l'activation des connexions root ne soit pas réellement sécurisée si elle est effectuée correctement, vous n'avez pas besoin d'activer les connexions root car vous avez sudo
.
20
2018-05-03 17:12
Compte racine est désactivé par défaut - ce qui signifie qu'il existe mais qu'il n'est pas utilisable (sauf en mode de récupération). Cela signifie qu'un attaquant est conscient de votre compte root, mais ne peut pas l'utiliser même s'il possède le mot de passe root. Ainsi, un attaquant doit deviner à la fois un nom d'utilisateur doté de privilèges d'administrateur ET le mot de passe de cet utilisateur (ce qui est beaucoup plus difficile que d'essayer de résoudre le mot de passe root). un accès physique à votre boîte peut y démarrer (RC) - aucun mot de passe requis. Identique au mode de récupération dans Ubuntu.
Dans Ubuntu, quand ils disent que la racine est désactivée - ce qui signifie vraiment que le compte est verrouillé. Un compte est verrouillé en changeant le mot de passe en une valeur qui ne correspond à aucune valeur chiffrée possible. Cela empêche efficacement quiconque de se connecter en tant que root, car il est impossible de saisir le mot de passe. Comme il y a encore des moments où l'accès root est nécessaire - le noyau Ubuntu a été modifié pour permettre la connexion locale root uniquement en mode mono-utilisateur.
Voir aussi ceci page
13
2017-12-04 17:18
C'est comme armer un gamin avec un AK47, alors qu'il peut jouer avec son pistolet de paintball. ;)
Je veux dire son erreur parce que vous et vos applications auront plus de privilèges alors ils ont besoin et c'est quand les choses pouvez et sera parfois aller mal :(
12
2017-12-05 01:33
Très belle question ... Laissez-moi y répondre d'un point de vue pratique:
Lorsque j'ai commencé à utiliser Linux, il y a plus de 10 ans, les principales distributions ne faisaient pas autant de publicité que les comptes non root. Comme j'étais habitué à Windows, je ne voyais pas non plus d’utilisation d’un compte utilisateur limité. En particulier parce que je devais entrer "su" très souvent - sudo n'était pas très populaire à l'époque. ;-) Je me suis donc toujours connecté en tant que root car j'avais beaucoup de maintenance à faire pour bien configurer mon système. Mais devinez quoi, tout nouveau système installé est rapidement devenu très instable.
Un problème concret par exemple: je n’ai pas eu autant d’espace disque dur réservé pour Linux, il m’est donc arrivé à quelques reprises de ne plus avoir aucun octet sur ma partition. Peut-être que je ne suis pas complètement précis car je ne connais pas le mécanisme exact, mais lorsque vous remplissez un disque avec un compte non root, il reste toujours quelques kilo-octets. Mais si vous avez vraiment 0 octet, votre système commet des erreurs étranges et vous risquez de vous retrouver avec des problèmes de réparation sur votre système, car de nombreux logiciels système tournent en arrière-plan ...
Une autre chose est: cette division entre root et non-root maintient votre système bien organisé. En tant qu'utilisateur root, vous pourriez être tenté de ne pas installer correctement vos nouvelles applications, ce qui vous laisse un système difficile à gérer.
Mais la bonne chose: les distributions modernes effectuent la plupart des tâches d'administration pour vous, alors il est rare que vous ayez à manipuler les entrailles de votre système Linux avec un compte root. Entrer un mot de passe de temps en temps est suffisant, le reste est fait par les scripts du distributeur.
Mais je doute que vous n’ayez pas eu de problèmes avec votre système Windows avec 95 ou 98. (Au moins, j’avais des problèmes avec ça ...) En raison de l’absence de séparation claire entre administrateur et utilisateur habituel "traditionnel "Les applications Windows supposent qu'elles peuvent faire n'importe quoi installez Spyware s'ils le souhaitent, même sans vous le dire. Microsoft s'est engagé dans ce dossier lors de la sortie de Vista. (Implémenter efficacement un mécanisme sudo.) Les gens ont donc des dialogues très ennuyeux en disant "Vous ne pouvez pas faire ça". Pour certains logiciels non compatibles avec Vista, vous aviez besoin de logiciels malveillants pour l'installer, même en tant qu'administrateur ...
11
2017-12-04 20:02
Cette approche comporte de nombreux aspects. Certains d'entre eux sont:
La racine est tout puissant.
Dans les systèmes Unix et Unix, les privilèges d'administration système sont tout ou rien. Un utilisateur a un accès root ou non, et l'accès root implique le contrôle complet d'une machine. Si la machine en question est utilisée par plusieurs personnes ou si la racine a accès à d'autres systèmes ou fichiers utilisateur, il est plus acceptable d'accorder à certains utilisateurs des privilèges de racine partiels.
L'utilisateur root peut masquer toutes ses actions.
sudo enregistre toutes les commandes exécutées via sudo. Avoir un enregistrement de ce qui se fait avec sudo nous aide à diagnostiquer des problèmes avec des systèmes / processus individuels et des problèmes de configuration générale, tout en nous aidant à identifier les améliorations nécessaires.
Le mot de passe root vous donne accès à toute commande sur un système.
Via son fichier de configuration, sudo peut donner à l'utilisateur un accès root pour un ensemble de commandes particulier. Cela évite également l'effet "tout ou rien", ce qui nous permet de donner aux utilisateurs individuels plus de contrôle sur leurs machines et de s'aider eux-mêmes des problèmes courants.
voici un bon article: http://cf.stanford.edu/policy/root
10
2017-12-18 13:52
rm /*
Disons que vous avez nettoyé une zone administrative. Vous êtes fatigué de mot de passe, donc vous sudo su
. Vous êtes distrait juste pour la seconde et vous oubliez de cd pour /
. Alors vous rm *
. Je l'ai fait. Vous pouvez tout récupérer, mais c'est un PITA. Oh, et il est descendu dans /media
aussi!
8
2018-02-07 04:30