Est-il acceptable d'utiliser l'utilisateur root en tant qu'utilisateur normal?

94

J'ai activé l'utilisateur root sur mon Mac afin que je puisse me connecter à celui-ci et exécuter le Finder, etc. Etant la personne paresseuse que je suis, j'ai tout transféré de mon répertoire personnel à /var/root. Je ne suis pas trop sûr de faire cela, alors je peux tout remettre en place. Est-il techniquement «acceptable» de l'utiliser comme un utilisateur normal? (Je suis le seul à pouvoir accéder à mon ordinateur.)

的 人
la source
6
Bonne question avec 'el Capitan' sans racine au coin de la rue.
CousinCocaine
4
Qu'est-ce que cela signifie (accéder à mon ordinateur)? Vous vous connectez probablement à Internet. Vous ne spécifiez pas le logiciel auquel vous donnez accès à l'ordinateur. Qu'est-ce que 'OK' ressemble à vous? Félicitations pour avoir obtenu d'excellentes réponses générales. Mieux vaut probablement poser la question plus détaillée (s'il en existe une) comme question de suivi.
bmike
6
Vous pouvez utiliser un compte root en tant qu'utilisateur normal à condition que vous connaissiez la réponse à la question "Est-ce 'OK' d'utiliser l'utilisateur root en tant qu'utilisateur normal?". Une fois que vous connaissez la réponse, vous ne le saurez pas. ;-)
Dakshinamurthy Karra
Vous voudrez peut-être ajouter la distinction entre root, admin et utilisateur normal. Je crois que admin est la valeur par défaut.
Steve Moser
6
"Je suis le seul à pouvoir accéder à mon ordinateur" <- Lol
Tim

Réponses:

354

Utiliser votre ordinateur connecté en tant que root à tout moment est comme si vous portiez toujours toutes vos clés, votre passeport, 5 000 $ en espèces, ce papier avec tous vos mots de passe écrits et la seule photo que vous avez de Flopsy, le lapin adorable dont la mort a brisé votre cœur de sept ans. Oh, et une tronçonneuse.

C’est-à-dire que c’est très pratique de temps en temps, car cela signifie que vous pouvez faire ce que vous voulez, quand vous le voulez, sans avoir à rentrer chez vous pour aller chercher des choses ou parler à votre directeur de banque. Mais cela vous expose également à un risque important de perdre des objets, de vous les faire voler (ne pensez pas que la tronçonneuse vous aidera: vous serez dans les rues avant de constater que votre portefeuille est épuisé), de faire des choses que vous regretterez plus tard (achat impulsif). billets d’avion pour Vegas alors qu’il était saoul), en prenant des raccourcis dangereux (tronçonneuse à travers la clôture du lion parce que c’est le moyen le plus rapide de se rendre aux pandas) et en réaction (tronçonneuse de la voiture de son voisin parce que son chien aboie trop). Et, quand vous y réfléchissez, la plupart du temps, vous allez simplement au bureau, faire les courses, sortir avec vos amis. Vous ne ' Pas besoin de tout ça avec toi tout le temps juste pour la commodité d’en avoir besoin, quoi?, une fois par mois? Une fois par semaine?

Donc, non, ce n'est pas correct d'utiliser le compte root tout le temps. Cela vous donne un minimum de commodité mais vous met en danger. Il y a le danger que des erreurs stupides aient des résultats catastrophiques ("Hey, pourquoi rm -rf *ça prend si longtemps à courir? **** Je suis dedans /!"). Il y a le danger de s'acclimater à l'idée que tous les fichiers sont égaux et que vous pouvez simplement jouer avec ce que vous voulez, n'importe où dans l'arborescence. Il existe un danger que tout piratage de votre compte devienne immédiatement un piratage de l'ensemble du système, de sorte que chaque logiciel sur votre ordinateur est désormais critique pour la sécurité. Et même si vous pensez que vous ne vous souciez pas du piratage de votre machine (après tout, cette photo de Flopsy est un vrai morceau de papier glacé, pas un fichier JPEG éphémère), je Il est important que votre ordinateur soit piraté, car c'est alors sur le botnet que l'attaque DDOS est lancée contre tout service Internet auquel je n'ai pas accès aujourd'hui.

La racine est votre costume de Spiderman. Cela vous donne un grand pouvoir mais requiert une grande responsabilité. Il est dans le placard chaque fois que vous en avez besoin, pour que vous n'ayez pas à le porter tout le temps.

David Richerby
la source
54
Non seulement cette pièce était-elle divertissante et bien écrite, mais elle en dit long sur la vérité et mérite
amplement la
17
Je continue à revenir à cela. C'est un conseil authentique avec le plus d'humour que vous puissiez mettre dans quelque chose tout en restant sérieux.
Posté le
19
@ 9000 Ce n'est pas le cas depuis au moins XP.
David Richerby le
28
la mort de flopsy et la tronçonneuse sont-elles liées?
Sirex
29
"La racine est votre costume de Spiderman". Je meurs ici.
GeminiDomino
23

Vous pouvez le faire, mais c'est un risque majeur pour la sécurité et la stabilité. Cela permet à toute application d’avoir un accès complet à votre ordinateur. Vous ne pouvez pas savoir ce qu'ils font avec cet accès. C'est inutile et vraiment dangereux.

Pour plus d’informations générales à ce sujet, voir

William T Froggard
la source
J'ai supprimé les commentaires car ils n'ont pas réellement ajouté de réponse, pouvez-vous poursuivre la discussion en clavardant?
nohillside
Merci pour les modifications. J'espère que cela corrige une partie de la confusion concernant mon post.
William T Froggard le
16

Honnêtement, je conviens que l' rootutilisation de l' utilisateur par défaut comporte de nombreux risques . Mais laissez-moi les parcourir et critiquer un peu les arguments.

  • Défense contre les applications : En pratique, le système de permission de * nix n'est pas assez puissant (de loin) pour permettre l'exécution de programmes arbitraires. Un programme malveillant sur * nix est capable de faire assez de mal (comme voler les identifiants de votre banque) sans autorisations root. Cela sera un peu plus difficile pour une non- rootapplication que pour une rootapplication (par exemple, au lieu d'installer directement un certificat racine et d'intercepter la connexion à la banque, vous devrez vous débrouiller avec le navigateur, mais bon, c'est tout à fait faisable et vous devez probablement le faire de toute façon pour vous assurer que l'utilisateur ne remarque rien)
  • Défendre contre les erreurs des utilisateurs (comme exécuter une mauvaise commande et supprimer tous les fichiers système) : Absolument vrai, mais même si un non- rootutilisateur sauvegarde le système, tous les fichiers importants seront déjà perdus (les fichiers appartenant à l'utilisateur étant beaucoup plus nombreux). susceptible d'être unique).
  • Défendre contre les bogues exploitables dans les applications que vous exécutez: Maintenant, c'est plus comme ça. Par exemple, lorsque vous exécutez un serveur Web où de nombreuses applications sont ouvertes sur l'extérieur, tout bogue exploitable sera facilement atteint. La même chose s’applique bien sûr même si vous êtes assis derrière un routeur et un pare-feu, bien que l’ampleur du danger soit bien moins grande. Une fois encore, toutefois, la question est de savoir dans quelle mesure le système de permission défendra de manière réaliste un système privé. Sans rootautorisations, il est toujours possible d'accéder à tous les fichiers privés et d'intercepter les données du réseau est également possible ... les deux choses les plus importantes que vous puissiez souhaiter en tant qu'attaquant d'un système privé.
    • (A présent, en plus du système de permission de fichier standard * nix, Apple a également introduit un système d’application en sandbox. Pour autant que je sache, ce système est toujours pleinement opérationnel, même en étant connecté en tant que root. Si tel n’était pas le cas, ce un accord total.)

Quoi qu'il en soit, tous ont considéré que je ne pensais pas que ce soit une idée aussi terrible que certains prétendent. Remarquez, je ne dis pas que c'est une bonne idée non plus, mais je pense que les gens surestiment l'utilité du modèle d'autorisation du système de fichiers * nix pour vous protéger. Oui, c'est incroyablement utile pour certaines choses (par exemple, les systèmes multi-utilisateurs, les serveurs multi-applications complexes, maintenir le système en marche quoi qu'il arrive (en cours d'exécution, mais pas nécessairement utilisable), verrouiller les fichiers importants (bien qu'il soit préférable de les chiffrer) ...), etc.), mais ce n'est pas une protection magique qui empêche les mauvaises choses de se produire.

Dans les commentaires, j'ai proposé une analogie qui semble tout à fait adéquate pour décrire la situation. En néerlandais, nous avons un mot pour le petit placard où vous pouvez trouver tous les compteurs et la bascule pour l’alimentation en eau principale, etc. Courir en tant que rootcompte utilisateur revient à enlever le verrou de ce petit placard. Fait ironique: la plupart des gens n'ont pas de verrou dessus. Maintenant, comme avec lerootutilisateur, cela ne veut pas dire qu'il n'est pas utile de l'enfermer dans certains cas. Par exemple, dans les bureaux ou autres bâtiments semi-publics, il est souvent enfermé, mais dans les maisons normales, il est bien plus important d'avoir un verrou puissant sur la porte d'entrée ( ne pas installer des objets aléatoires, un pare-feu, etc.) et mettre tous vos objets importants dans un coffre-fort (faire des sauvegardes, les chiffrer, etc.). Un verrou supplémentaire sur ce placard fera-t-il mal? Non, alors ce serait peut-être une bonne idée de le mettre en place juste au cas où, mais selon toute probabilité, cela sera tout à fait inutile.

Courir en tant rootqu’utilisateur n’a rien de mieux que de prendre toutes les serrures de votre maison et d’emporter tout le matériel dans le coffre-fort, comme le prétend David Richerby. Votre passeport (identité) n'est en aucun cas protégé par le système de fichiers * nix, votre argent (compte bancaire) n'est en aucun cas protégé par le système de fichiers * nix, vos mots de passe importants ne sont probablement pas protégés par le système de fichiers * nix (si vous utilisez Safari, mais ils pourraient effectivement être protégés en partie par le modèle d'autorisation du système de fichiers * nix, mais sansroot vous pouvez toujours ajouter une extension invisible à Safari et ensuite juste intercepter le mot de passe la prochaine fois que vous l'utilisez), vos photos ne sont définitivement pas protégées par le système de fichiers * nix et si vous utilisez le terminal, vous possédez déjà une scie à chaîne autour avec vous (point 2 ci-dessus).

David Mulder
la source
2
Si vous sous-estimez une réponse, veuillez indiquer ce qui ne serait pas correct dans mon analyse. Je suis parfaitement conscient que ma réponse est un peu peu orthodoxe, mais je m'attendrais à ce que les TIC soient suffisamment progressives pour que les réponses soient jugées en fonction de leur contenu, et non de leur adéquation aux dogmes traditionnels.
David Mulder
3
Cela mérite plus de votes. Les seules choses qui me tiennent à coeur sur mon ordinateur sont les fichiers appartenant à mon utilisateur (non root). Ils représentent mes photos, ma musique, des vidéos de mes filles .. le reste peut être réinstallé facilement!
Isak Savo
6
Cette logique est fondamentalement la même que de dire parce que les ouvre-portes de garage à distance sont une sauce assez faible, ce ne serait vraiment pas un problème si personne ne fermait leurs portes de garage. La prémisse est vraie mais le conseil est faux. Une sécurité efficace est constituée de beaucoup de petites pièces travaillant ensemble. Comme tout le monde dans un quartier en gardant leurs garages fermés. Cela rend le quartier plus sûr pour tout le monde.
Caleb
2
@Caleb Il y a une énorme différence entre posséder une maison dans un quartier et inviter quelqu'un à y entrer. Et au moment où quelqu'un entre dans votre maison, rien ne peut l'arrêter sur des systèmes standard * nix. Voici ce que je décris dans cette réponse: Une fois que quelqu'un a pénétré dans votre système, les autorisations du système de fichiers * nix ne vont pas vous aider, car elles ne protègent pas les éléments que vous considérez comme importants sur un système privé. La seule chose qui soit (suite)
David Mulder le
3
Ne pas avoir la racine ne l'empêche pas, bien sûr. Mais c'est une affirmation légèrement différente. un peu comme comment j'ai dit "attaque", pas "compromis". Vous pouvez faire beaucoup plus sur le réseau avec root. Si votre machine zombie participe à un flux ICMP simple, vous avez besoin d'un accès de socket brut pour générer ce trafic ICMP (c'est pourquoi Ping est une racine suid). Il en va de même pour plusieurs autres modifications de paquets malveillants utiles.
dannysauer
15

Vers 1990, je travaillais sur un projet avec un gars nommé Tom. Nous utilisions un serveur SUN exécutant SunOS (un dérivé d’Unix, prédécesseur de Solaris). C'était à l'époque avant les lecteurs de CD et les lecteurs flash. Par conséquent, si vous perturbiez le système d'exploitation de votre disque dur, il n'y avait aucun moyen de le récupérer.

Tom avait l'habitude de se connecter en tant que root. Je lui ai dit que c'était une mauvaise idée, mais il n'a pas écouté. Un jour je l'ai entendu dire "Uh-oh". Il avait eu l'intention de taper quelque chose comme ceci:

mv something* .

Malheureusement, il a laissé le dernier point, de sorte que le shell a développé tous les noms de fichiers et de répertoires correspondant à ce modèle. Ensuite, la commande mv a utilisé tout ce qui finissait par être le nom final de la liste comme répertoire de destination et y a transféré tout le reste. De plus, malheureusement, il se trouvait actuellement dans le répertoire racine. Le système de fichiers tout entier a donc été déplacé dans un de ses sous-répertoires.

J'ai utilisé la flèche vers le haut pour ramener la commande précédente et j'ai vu ce qui s'était passé. La première chose que j’ai alors dite était: "Ne vous déconnectez pas! Ou vous ne pourrez plus jamais vous connecter."

Pas de problème, non? Nous pourrions simplement tout déplacer en arrière. Nous pourrions le faire, sauf que la commande mv n'était pas l'une des commandes intégrées du shell. Au lieu de cela, il s’agissait d’un programme exécutable, stocké dans l’un des fichiers déplacés. Heureusement, ls était une commande intégrée. Ainsi, après avoir utilisé ls pour confirmer l'emplacement des commandes, j'ai pu trouver la commande mv, l'invoquer avec son nom de chemin complet et remettre les éléments là où ils étaient supposés être. .

Et puis je lui ai dit: "Tom, c'est pourquoi c'est une mauvaise idée de se connecter systématiquement en tant qu'utilisateur root."

Mike Ciaraldi
la source
10

En règle générale, vous souhaitez que la propriété de vos fichiers personnels reste distincte de l'utilisateur root. C'est pourquoi vous créez un compte pour vous en tant qu'administrateur. Sous OS X, le moyen accepté d’obtenir un accès de niveau racine consiste à utiliser la sudocommande à partir de l’application Terminal. Par exemple, si vous souhaitez voir le partitionnement de votre lecteur interne, la commande est

gpt -r show /dev/disk0

qui, s'il est entré, entraînera le message d'erreur suivant.

gpt show: unable to open device '/dev/disk0': Permission denied

Pour utiliser la commande, vous devez utiliser sudocomme indiqué ci-dessous.

sudo gpt -r show /dev/disk0

Si vous voulez devenir l'utilisateur root pour éviter d'entrer sudo, vous pouvez simplement entrer sudo sh. La exitcommande peut être utilisée pour quitter l’utilisateur root.

Si vous souhaitez exécuter une application en tant qu'utilisateur root, vous pouvez utiliser l'application Terminal. Par exemple, si vous souhaitez lancer le Finder en tant qu'utilisateur root, entrez la commande suivante.

sudo /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder &

Pour éviter la confusion d'avoir deux applications Finder ouvertes en même temps, il est généralement préférable de quitter d'abord votre application Finder. Cela peut être fait en utilisant la commande de terminal suivante.

osascript -e 'tell application "Finder" to quit'

Un mot d'avertissement: précéder une commande avec sudon'est pas la même chose que devenir l'utilisateur root. Par exemple, les commandes

sudo echo $USER
sudo echo $SUDO_USER

donner le même résultat que les commandes indiquées ci-dessous.

echo $USER
echo $SUDO_USER

Si vous devenez l'utilisateur root (le superutilisateur), les mêmes commandes donnent un résultat différent. Cela peut être vérifié en entrant les commandes ci-dessous.

sudo sh
echo $USER
echo $SUDO_USER
sudo echo $USER
sudo echo $SUDO_USER
exit
David Anderson
la source
4

Au cas où les autres raisons ne seraient pas assez bonnes ... N'oubliez pas que vous ne pouvez pas utiliser Homebrew comme racine (qui est en réalité une douleur énorme). D'autres programmes ne vous permettent pas non plus de les utiliser en tant qu'utilisateur root ou d'exécuter des problèmes d'autorisations, souvent sans raison apparente, car leurs programmeurs supposent qu'ils ne seront pas exécutés en tant que root. Je pense que Steam est l'un d'entre eux.

Il est également agréable d’avoir toutes les informations relatives au système et à l’utilisateur séparées pour différentes raisons.

Je ne sais pas si c'est un problème de sécurité. Personnellement, je m'inquiéterais davantage des problèmes d'organisation et de permissions que de toute autre chose.

sudo
la source
4

Quelques exemples seulement pourquoi il n'est pas correct de toujours exécuter en tant que root:

  • L'utilisateur racine peut facilement placer des fichiers dans des emplacements beaucoup plus difficiles à localiser.
  • L'utilisateur racine a un accès brut aux interfaces et peut donc mettre une interface en mode promiscuous ou moniteur et journaliser TOUT le trafic réseau.
  • L'utilisateur racine a un accès brut aux nœuds de périphérique et peut écraser un disque, ce qui rend la récupération de fichiers beaucoup plus difficile qu'un simple "rm" au niveau utilisateur. L'utilisateur racine peut également potentiellement modifier les secteurs de démarrage d'un lecteur, ce qui rend les logiciels malveillants persistants même après une réinstallation du système d'exploitation.

Je pourrais continuer. Le fait est qu'il y a de bonnes raisons pour ne pas fonctionner en tant que root. Je ne conteste pas que, pour la plupart des gens, leurs données les plus personnelles se trouvent de toute façon dans leur répertoire personnel, mais le fait de fonctionner en tant que root expose néanmoins ces données et l'ensemble du système à un risque plus élevé. Le conseil de ne pas exécuter en tant que root n'est pas mal placé. Si une personne ne comprend pas les implications de l'exécution en tant que root, elle ne devrait certainement pas le faire. Suggérer autre chose est irresponsable.

bodangly
la source
1

Sauf si vous utilisez backtrack / kali pour une tâche spécifique: NON. Traitez le super utilisateur comme un pistolet chargé: si vous avez un besoin immédiat et avez l’intention de l’utiliser: OK. Si vous pouvez toutefois résoudre votre problème d'une autre manière (par exemple, "sudo"), faites-le.

SamWN
la source
0

NON! Votre système sera brisé en très peu de temps. Au lieu de cela, suou sudodans la racine si nécessaire. Si vous devez absolument, absolument, exécuter en tant que root, déconnectez-vous au moins à tout moment lorsque vous n'utilisez pas l'ordinateur. Si votre système est capable d'exécuter plusieurs utilisateurs, mais qu'aucun utilisateur n'est configuré, je vous suggère de créer un utilisateur privilégié (c'est-à-dire: un utilisateur qui peut sudo/ est connecté suà la racine si nécessaire.) Dès que possible !!!

tucker twomey CodeZypher
la source
0

Il suffit d'utiliser SUDO

À mon avis, le PO ne sait pas à quel point il est facile à utiliser sudolorsque vous avez besoin d’utiliser root.

OP, tous vos problèmes sont finis. Restaurez immédiatement votre Mac à un état normal.

Et utilisez simplement sudo au besoin. Phew.

Fattie
la source