Вы можете заметить ошибку, когда при вводе cd или cd ~ вы попадаете в /root, а не в каталог /home, в котором, как кажется, хранятся домашние каталоги. Если вы получаете эту ошибку, то, скорее всего, вы замечали ее каждый раз, когда работали в Linux в качестве суперпользователя. Исправить это очень просто, потому что на самом деле это вовсе не ошибка.
Скорее всего, это вызвано особенностью того, как Linux обрабатывает размещение домашнего каталога. Хотя это и ожидаемое поведение, оно все же может быть крайне запутанным, если вы никогда не сталкивались с ним раньше.
Если вы введете в терминале команды cd или cd ~, то вы вернетесь в свой домашний каталог, независимо от того, где вы находитесь в иерархии каталогов Linux. Это верно, даже если вы находитесь на отдельном разделе или даже в совершенно другой внешней файловой структуре. Если вы когда-нибудь сбились с пути, лазая по каталогам, то, просто набрав cd, вы попадете туда, откуда, скорее всего, начали свой путь в тот момент, когда открыли терминал.
В Linux домашним каталогом пользователя root в некоторых дистрибутивах является /home/root, но обычно он располагается по адресу /root в самом начале файловой структуры. Хотя это можно настроить, такая ситуация наблюдается в подавляющем большинстве дистрибутивов Linux. Попробуйте набрать команду cd /root как обычный пользователь терминала. Вы’получите ошибку “bash: cd /root: Permission denied”, потому что это домашний каталог суперпользователя’;.
Теперь, когда вы это сделали, откройте графическое окно корневого терминала, набрав gksu x-terminal-emulator на терминале. Вам будет предложено ввести административный пароль, так как в этом случае создается полностью поднятая командная строка.
Многие дистрибутивы Linux, особенно основанные на Ubuntu, хэшируют имя пользователя root’, поэтому вы не можете войти в систему под его именем. Если вы получаете подобную ошибку на Ubuntu или другом подобном дистрибутиве, то эта команда все равно позволит вам войти в систему как root, не беспокоясь об этой хэш-системе. Независимо от этого, откроется отдельное окно терминала, отличное от того, в котором вы работали.
Как только вы окажетесь в приглашении bash, введите команду whoami; cd; pwd и нажмите клавишу ввода. Сначала определяется, под каким именем вы вошли в систему, а затем меняется на домашний каталог текущего пользователя. Вы’ заметите, что вы’ вошли в систему как пользователь root, а домашним каталогом этого пользователя является не /home/root, а /root. В дистрибутивах Linux это сделано потому, что некоторые люди предпочитают устанавливать весь каталог /home на отдельный раздел, отличный от точки монтирования / верхнего уровня.
Когда вы закончите работу с корневым окном, вам нужно будет набрать команду выйти чтобы выйти из этого окна, поскольку в нем вы все еще являетесь пользователем root.
Если структура каталогов /home была установлена на другом диске и он физически вышел из строя, то наличие /root в другом месте позволяет не потерять возможность загружать систему от имени суперпользователя для восстановления. Большинство дистрибутивов делают так, чтобы различные каталоги обычных пользователей’ были доступны для чтения друг другу. Каждому из них дано 755 прав доступа в Unix. Каталог /root особенный, потому что имеет права 700, что означает, что только суперпользователь root может читать из него.
Когда вы видите символ ~, это просто обозначение, которое оболочка использует для представления домашней директории пользователя, независимо от того, где она находится, поэтому, если вы получили похожий или идентичный результат, как указано выше, у вас нет ошибок, которую нужно исправить. Иногда вы можете встретить термин «тильда», который является буквальным названием этого символа и означает то же самое.