Par curiosité, je voudrais savoir pourquoi, lorsque je me connecte en tant que root, je ne suis plus dans / home / user . Quelle est la raison et que fait exactement le répertoire / root ?
Je ne suis pas un utilisateur avancé. Veuillez répondre en termes simples ou donner un lien fournissant des explications claires et simples. J'utilise Ubuntu 16.04 et je me connecte en tant que root par sudo -i
. Comme il est expliqué ici , sudo -i
a / root comme home. Je veux savoir quelle est la raison; y a-t-il un avantage à être là? Et pas dans ~ comme l'utilisateur de sudo -s
.
home
répertoire personnel , mais celui-ci est nomméroot
sudo -s
pour être dans le même répertoire utilisateur.man sudo
répondra à la question. Pour être simple, voususer -i
utilisez les paramètres utilisateur root, maissudo -s
les paramètres utilisateur actuels.Réponses:
Vous ne vous connectez pas en tant que root en exécutant une
sudo
commande. Vous démarrez un shell avec des privilèges root.Si vous souhaitez rester dans le répertoire de base de l'utilisateur actuel, vous pouvez utiliser à la
sudo -s
place de lasudo -i
commande.cd ~
vous amènera dans le même répertoire que si vous n'êtes pas dans un shell avec des privilèges root. Littéralement/home/$USER
.Lorsque vous utilisez
sudo -i
, le système agit comme si vous étiez connecté en tantroot
qu'utilisateur. À cause de cevous amène au répertoire de base de l'utilisateur root qui est
/root
./root
répertoire est un répertoire personnel pour l'root
utilisateur.La principale différence est que les fichiers de paramètres shell comme
.bashrc
sont utilisés à partir de/root
dans le cas d'unsudo -i
, et à partir d'un utilisateur normal dans le cas desudo -s
.la source
.bashrc
sont utilisés à partir de là dans un shell spécifique. Dans la plupart des cas, il n'y a pas beaucoup de différence./home
n'est pas disponible, le problème n'existe pas. Ensuite, vous vous connectez vraiment en tant que root.La raison pour laquelle le domicile de l'
root
utilisateur est/root
et n'est pas/home/root
parce qu'il s'agit généralement d'/home
un point de montage vers une partition / volume / disque séparé ... (pour diverses raisons, telles que l'espace disque ou à distance, ...)Si, pour une raison quelconque, le montage
/home
échoue, vous pouvez toujours vous connecter en tant queroot
et être dans votre/root
répertoire personnel pour enquêter et corriger les choses.De plus, pour la maintenance, la configuration initiale, le redimensionnement, ... vous seriez connecté comme
root
et devriez pouvoir démonter / remonter/home
la source
root a / root comme domicile et lorsque vous passez en root, vous vous retrouverez chez lui. Telle est la nature de
sudo -i
.sudo -s
fait de même mais ne change pas de répertoire. Manuel pour sudo :L'utilisateur root doit faire partie du système. Lorsque vous placez / home sur une autre partition et que root fait partie de / home, vous rencontrerez de graves problèmes si la partition ne se monte pas. Pour la même raison, nous avons également
et
Lorsque vous mettez / usr sur une partition et / usr ne monte pas, vous avez toujours un système qui fonctionne.
la source
sudo -i
vssudo -s
?Le système de fichiers Linux est structuré de manière spécifique. Les binaires essentiels sont dans
/bin/
, les fichiers du chargeur de démarrage sont dedans/boot/
, la plupart des fichiers de périphériques sont dedans/dev/
dedans, les points de montage pour les supports amovibles sont/media/
dedans, etc ...Voir https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard .
Certains détails mineurs peuvent différer d'une distribution à l'autre (par exemple
/usr/bin/
vs./usr/local/bin/
), mais en général, presque toutes les distributions Linux suivent la même structure de répertoires.Pour répondre à ta question:
Les répertoires personnels des utilisateurs sont dans
/home/
. En principe, Linux est un système d'exploitation multi-utilisateurs. Vous pouvez avoir un seul compte utilisateur sur votre ordinateur portable avec son répertoire personnel/home/<username>/
, mais si vous regardez/home/
sur un serveur Linux partagé, vous verrez de nombreux répertoires personnels: un pour chaque compte utilisateur. L'idée est que chaque utilisateur du système n'a des autorisations d'écriture que dans son propre répertoire personnel. Si votre nom d'utilisateur est,bob
vous pouvez lire et écrire et supprimer des fichiers/home/bob/
mais vous ne pouvez rien toucher dans/home/alice/
ou dans/var/log/
.root
est différent cependant.root
est l'utilisateur administratif et dispose de privilèges d'écriture partout sur le système (et peut agir comme n'importe quel utilisateur du système). Il est donc logique queroot
a le répertoire spécial/root/
carroot
n'est pas un utilisateur régulier. En dehors de cela, il/root/
s'agit simplement d'un répertoire ordinaire sans magie particulière, bien qu'il soit possible (même probable) que les utilitaires système reposent sur/root/
le domicile de l'utilisateurroot
.Lorsque vous exécutez
sudo -i
dans un terminal, vous passez d'être par exemple l'utilisateur régulierbob
à l'êtreroot
. Notez que ce commutateur affecte uniquement la fenêtre du terminal où vous avez tapésudo -i
. Pour votre gestionnaire de fichiers, vous êtes toujoursbob
et si vous ouvrez une autre fenêtre de terminal, vous y êtes toujoursbob
. Dans ce contexte, le symbole~
est un raccourci pour le répertoire personnel de l'utilisateur actuel. Pour desbob
~
moyens/home/bob/
mais pour desroot
~
moyens/root/
.J'espère que cela clarifie les choses pour vous.
la source
/
. L'emplacement standard a été changé pour des raisons de sécurité (tout le monde doit pouvoir répertorier les fichiers/
, afin que tout le monde puisse voir quels fichiers dot l'utilisateur root avait.Je vois que tout le monde répond à ce qui se passe lorsque vous vous connectez en tant que root (vous obtenez un répertoire ~ qui n'est pas dans / home) mais personne ne dit pourquoi. Voici pourquoi:
Si toute la structure / home devient inutilisable et que vous devez la réparer, ou si vous devez réaffecter / home parce qu'elle manque d'espace, vous devez le faire d'une manière ou d'une autre. Vous ne pouvez pas vous connecter en tant qu'utilisateur ayant ~ in / home, car vous vous planteriez dès que vous tentiez de faire quoi que ce soit. L'utilisateur root a donc embauché ~ ailleurs.
la source
hir
c'était une faute de frappe. Merci pour toutes ces informations! Je recommande de garder le formatage du code difficile, mais c'est à vous.Vous dites que vous n'êtes pas un utilisateur avancé, je vais donc essayer d'écrire une réponse étape par étape.
Lorsque vous utilisez Linux, vous devez vous souvenir de certaines choses importantes:
Linux est un système multi-utilisateurs. Il a été conçu comme ça depuis le début, suivant la philosophie Unix (notez l'approche différente adoptée par Windows, qui a été conçu comme un système mono-utilisateur)
En tant que système multi-utilisateurs, Linux a la possibilité de séparer les fichiers appartenant à chaque utilisateur du système. Linux y parvient en attribuant à chaque utilisateur un sous-dossier dans le
/home/
répertoire. Chaque fichier utilisateur lui appartient et seul (s) il peut les ouvrir, les modifier ou permettre à d'autres utilisateurs de les utiliser. Inversement, chaque fichier du système de fichiers appartient à un utilisateur et cet utilisateur a le pouvoir de voir ou d'utiliser ce fichier. Comme mentionné dans une autre réponse, à l'origine, les utilisateurs pouvaient placer leurs fichiers n'importe où dans le système, mais à un moment donné, il est devenu évident que les choses devraient être mieux organisées et/home/
("slash-home") est devenu l'endroit où les fichiers des utilisateurs devraient être.Il existe cependant des fichiers dont le système lui-même et / ou chaque utilisateur du système a besoin: binaires, fichiers de périphérique, fichiers système, etc. (rappelez-vous: sous Linux et dans tout autre système de type Unix, tout est un fichier) . Ces fichiers nécessaires à l' échelle mondiale sont stockés dans différents endroits le long du système de fichiers, organisés dans différents dossiers dans la racine du système de fichiers :
/
. De plus, ces fichiers nécessaires à l'échelle mondiale n'appartiennent pas à un utilisateur particulier du système, mais au système lui-même ... mais cela peut être déroutant: à qui appartiennent les binaires? Qui accorde des autorisations sur ces fichiers nécessaires à l'échelle mondiale?Étant donné que chaque fichier du système "a besoin d'un propriétaire", il doit y avoir un "utilisateur spécial" qui peut administrer les fichiers nécessaires à l'échelle mondiale. De plus, cet "utilisateur spécial" peut faire des choses qu'aucun autre utilisateur du système ne peut faire: il peut créer d'autres utilisateurs pour le système. Cet utilisateur est appelé "super utilisateur" (pour nous les mortels) ou "root" (pour le système).
Maintenant, ce superutilisateur est un autre utilisateur du système, mais a des pouvoirs (et des responsabilités) bien supérieurs à ceux des autres utilisateurs: la maintenance, par exemple. Il est donc naturel de penser que "root" a besoin d'un endroit pour y mettre ses trucs, mais il ne faut pas le confondre avec les trucs des autres utilisateurs. Ainsi, au lieu d'avoir un sous-dossier ci-dessous
/home/
, "root" a son propre espace réservé dans le système de fichiers:/root/
(appelé "slash-root"). Rappelez-vous: "root" est un utilisateur très spécial, il a donc besoin d'un endroit spécial et privilégié pour y mettre ses trucs.Maintenant, Ubuntu n'a pas de compte root activé par défaut, donc un utilisateur "normal" doit avoir l'autorité sur le système dans son ensemble. C'est là que la commande
sudo
("changer d'utilisateur et faire") intervient: elle permet à un utilisateur normal (précédemment inclus dans la liste des "sudoers") d'exécuter des commandes comme s'il était un autre utilisateur, par exemple "root".Enfin, ces
-i
options signifient «simuler la connexion initiale». Cela signifie quesudo
va lire les données du "profil de l'utilisateur cible" avant d'exécuter la commande donnée. Si vous ne fournissez pas de commande, alorssudo
va démarrer une instance de shell avec le profil (racine) de l'utilisateur cible ... et cela commence par le déplacement vers le dossier "home" de "l'utilisateur cible". Alorssudo -i
vous incitera à faire le dossier home de root (/root/
).J'espère que cela vous aide à comprendre ce qui se passe
sudo -i
.MODIFIER
Je pense que j'ai laissé des choses non clarifiées, je vais donc les ajouter ici:
J'ai dit plus haut: "sous Linux, tout est un fichier". Et je le pense, littéralement! Vos documents et images sont des fichiers, mais aussi des terminaux (ceux auxquels vous pouvez accéder en appuyant sur [CTRL] + [ALT] + [Fn]), et les disques physiques, et votre clavier, par exemple. Un système de type Unix fonctionne en lisant ou en écrivant des données depuis / vers des fichiers et en dirigeant le flux de données vers / depuis les fichiers appropriés du système, qui représentent le fichier avec lequel vous travaillez et l'entrée des clés que vous tapez, et la sortie que vous voyez à l'écran. Certains de ces fichiers peuvent être utilisés directement par les utilisateurs, mais d'autres non; par exemple, vous ne pouvez pas lire ou écrire directement sur un disque dur, mais vous devez laisser Linux lier un dossier normal et navigable au fichier de périphérique (sous
/dev/
) représentant votre disque dur.Un système de fichiers Linux peut s'étendre sur plusieurs disques physiques . Un exemple simple est lorsque vous branchez une clé USB: Linux peut monter ce lecteur (le montage est le processus par lequel le système connecte un dossier standard, où vous pouvez voir des fichiers dans un shell ou un navigateur de fichiers, vers un fichier de périphérique dans
/dev/
) et vous pouvez travailler avec, et lorsque vous avez terminé, vous demandez à Linux de démonter le lecteur puis de le retirer du port USB. L'important ici est que ce cycle de "montage - démontage" affecte * le même système de fichiers "que vous utilisez tous les jours: vous ne créez pas de nouveau système de fichiers chaque fois que vous ajoutez ou supprimez un lecteur physique, mais vous ajoutez ce lecteur physique au système de fichiers ( encore une fois, comparer cette philosophie avec l'approche de Wndows).Étant donné que le système de fichiers peut s'étendre sur plusieurs disques physiques, il devient évident que différents fichiers du système peuvent être écrits sur différents disques physiques. Un lecteur peut stocker les fichiers binaires du système (
/bin/
) et un autre peut stocker les fichiers de l'utilisateur (/home/
et ses descendants). Dans une configuration à plusieurs lecteurs, il est courant d'avoir/home/
écrit sur un lecteur physique différent de celui/root/
, donc, si le système tombe en panne et que les utilisateurs ne peuvent pas se connecter parce que le lecteur où/home/
cesse de fonctionner, root le peut. (C'est simpliste ... beaucoup de choses doivent être copiées dans chaque lecteur physique pour permettre à root de se connecter si aucun autre utilisateur ne le peut, mais cela peut vous donner une idée générale).Et ce caractère tilde (
~
) ... il désigne le répertoire personnel de l' utilisateur actuel . Si vous êtes connecté en tant que "bob", vous serez redirigécd ~
vers/home/bob/
, mais si vous êtes connecté en tant que "root",cd ~
vous serez redirigé vers/root/
tl; dr Alors maintenant, je pense que tout est dit:
"root" est un utilisateur spécial, avec des pouvoirs et des responsabilités bien supérieurs aux autres utilisateurs
"/ root /" est l'endroit où "root" peut stocker ses fichiers, sans risquer de les confondre avec d'autres contenus appartenant à des utilisateurs normaux. Ce dossier peut être écrit sur un lecteur physique différent de celui
/home/
.sudo -i
démarre un shell simulant la connexion de root, ce qui implique de passer au dossier de base de root. Comme avec tout autre utilisateur, vouscd ~
amènera à votre répertoire personnel, mais, si vous êtes root, il sera/root/
Si le système est installé sur différents lecteurs physiques, root peut se connecter et essayer de résoudre les problèmes même si un autre lecteur du système tombe en panne.
la source
La raison principale pour laquelle le répertoire personnel de root doit être traité différemment:
Lorsque les choses tournent mal, vous devez pouvoir effectuer des tâches de récupération du système dès que vous parvenez à monter le système de fichiers /.
Selon votre configuration, les répertoires personnels des utilisateurs peuvent se trouver sur un système de fichiers différent ou même être montés sur le réseau.
Pour vous connecter en tant que root (c'est-à-dire entrer le nom root et le mot de passe root à une invite de connexion) à partir de la console, vous n'avez besoin que du seul système de fichiers monté.
(C'est aussi pourquoi les utilitaires principaux sont dans / bin et / sbin au lieu de / usr / bin ou / usr / sbin - tout dans / usr est extensible.)
la source