Sous Linux, pourquoi le dossier racine du superutilisateur n'est-il pas sous / home?

24

Vous pouvez créer un utilisateur disposant de privilèges tels rootque son répertoire personnel /home/username. Pourquoi rootobtient-il son propre dossier au niveau supérieur du système de fichiers? S'agit-il simplement d'une convention, d'un problème de sécurité ou y a-t-il une raison liée aux performances?

tacos_tacos_tacos
la source
Notez que l' rootutilisateur et les utilisateurs "admin" ne sont normalement pas du tout la même chose. Un utilisateur "admin" (en supposant que c'est ce que vous entendez par "privilèges comme root") n'est généralement qu'un utilisateur ordinaire qui est autorisé à exécuter des commandes en rootutilisant quelque chose comme sudo.
La racine est /root, car c'est là que la norme du système de fichiers dit qu'elle devrait être. : p pathname.com/fhs/pub/fhs-2.3.html
Zoredache

Réponses:

54

Une raison: sur de nombreux systèmes, se /hometrouve sur une partition distincte (ou partage réseau) qui peut ne pas réussir à monter et c'est une bonne idée de permettre rootde se connecter avec son environnement habituel chaque fois que possible.

Sven
la source
1
C'est la même raison pour laquelle la plupart des systèmes Unix ont / sbin, / sbin et / usr / bin et / usr / sbin. Les deux premiers contiennent des fichiers binaires essentiels pour mettre le système en place et sont donc situés sur le système de fichiers racine.
Hennes
1
@Hennes tu as répété /sbindeux fois ce que tu voulais dire?
tacos_tacos_tacos
@ jshin47 Identique à la deuxième partie, sans /usr/, je suppose. /bin/et /sbin/.
Izkata
Il y a une très bonne discussion sur lists.busybox.net/pipermail/busybox/2010-December/074114.html . Je pense qu'il peut avoir commencé comme un système utilisateur unique (l'utilisateur root) et après quelques améliorations (je ne sais pas si Unix fait référence à unique userune sorte), il peut avoir été nécessaire d'ajouter différents utilisateurs avec des configurations différentes qui doivent résider sur un autre répertoire. Je devine.
licorna
1
@Alberto: Unix est ancien et les capacités de récupération des systèmes modernes ne pouvaient même pas être imaginées à l'époque. Il y a beaucoup de choses dans un système de type Unix qui seraient certainement traitées différemment du point de vue actuel. De plus, ce que vous mettez dans votre dossier racine dépend entièrement de vous.
Sven
5

Le répertoire racine doit se trouver sur la partition sur laquelle réside le système d'exploitation, qui par définition est /, de sorte que vous pouvez toujours vous connecter en tant que root sans problème si, par exemple, aucune autre partition de disque n'est disponible. / home est parfois monté sur une partition ou un lecteur séparé. Si celui-ci contient le répertoire racine racine et est hors ligne, vous pouvez rencontrer des difficultés avec votre shell de connexion. Ce n'est pas une bonne idée si vous essayez de corriger les choses en tant qu'utilisateur root.

Michael Martinez
la source