Почему больше находится пользователь с полномочиями пользователя root не в ~?

Только из любопытства, я хотел бы знать, почему, когда я вхожу в систему как корень, я больше не нахожусь в/home/user. Какова причина и что / корневой каталог делает точно?

Я не опытный пользователь. Ответьте в простых словах или дайте ссылку, которая дает ясные, простые объяснения. Я использую Ubuntu 16.04, и я вхожу в систему как корень sudo -i. Поскольку это объяснено здесь, sudo -i имеет корень / как домой. Я хочу знать, какова причина; там какое-либо преимущество должно быть там? А не в ~ как пользователь sudo -s.

20
задан 10 June 2018 в 21:36

7 ответов

Вы не регистрируетесь как корень путем выполнения a sudo команда. Вы запускаете оболочку с полномочий пользователя root.

Если Вы хотите остаться в текущем пользовательском корневом каталоге, можно использовать sudo -s вместо sudo -i команда.

cd ~ возьмет Вас к тому же каталогу, как будто Вы не находитесь в оболочке с полномочиями пользователя root. Буквально /home/$USER.

Когда Вы используете sudo -i, система действует, как будто Вы зарегистрированы как root пользователь. Из-за этого

cd ~ 

приносит Вам к корневому каталогу пользователя root, который является /root.

/root каталог является корневым каталогом для root пользователь.

Основное различие то, что файлы настроек оболочки как .bashrc используются от /root в случае sudo -i, и от обычного пользователя в случае sudo -s.

28
ответ дан 23 November 2019 в 01:46

Причина, почему дом root пользователь /root и нет /home/root то, потому что обычно /home точка монтирования к отдельному разделу/объему/диску... (по различным причинам, таким как дисковое пространство или удаленный...)

По некоторым причинам монтируясь /home перестал бы работать, Вы могли все еще соединиться как root и будьте в Вашем /root корневой каталог, чтобы заняться расследованиями и починить вещи

Кроме того, для обслуживания, начальной настройки, изменения размеров... Вы были бы соединены как root и должен смочь размонтировать/повторно монтировать /home

29
ответ дан 23 November 2019 в 01:46

Какова причина и что / корневой каталог делает точно?

корень имеет корень / как свой дом и когда Вы переключитесь на корень, он сделает, чтобы Вы оказались в его доме. Это - природа sudo -i. sudo -sделает то же, но не переключают каталоги. Руководство для sudo:

-s [command]

-s (оболочка), опция выполняет оболочку, указанную переменной Среды оболочки, если это установлено или оболочка, как указано в базе данных пароля. Если команда указана, она передается оболочке для выполнения через-c опцию оболочки. Если никакая команда не указана, интерактивная оболочка выполняется.

-i [command]

-i (моделируют начальный вход в систему) опция выполняет оболочку, указанную записью базы данных пароля целевого пользователя как оболочка входа в систему. Это означает, что определенные для входа в систему файлы ресурсов, такие как .profile или .login будут считаны оболочкой. Если команда указана, она передается оболочке для выполнения через-c опцию оболочки. Если никакая команда не указана, интерактивная оболочка выполняется. sudo пытается измениться на корневой каталог того пользователя прежде, чем выполнить оболочку. Политика безопасности должна инициализировать среду к минимальному набору переменных, подобных тому, что присутствует, когда пользователь входит в систему. Раздел Command Environment в sudoers (5) ручные документы, как-i опция влияет на среду, в которой выполняется команда, когда sudoers политика используется.

Пользователь root должен быть частью системы. Когда Вы помещаете / домой на другой раздел, и корень был частью / домой, Вы столкнулись бы с серьезной проблемой, если бы раздел не смонтировался. По той же причине мы также имеем

/bin
/sbin 

и

/usr/bin
/usr/sbin

Когда Вы помещаете/usr на раздел, и/usr не монтирует, что у Вас все еще есть рабочая система.

16
ответ дан 23 November 2019 в 01:46

Файловая система Linux структурирована в особенном методе. Существенные двоичные файлы находятся в /bin/, файлы загрузчика находятся в /boot/, большинство файлов устройств находится в /dev/, точки монтирования для съемных носителей находятся в /media/, и т.д...

См. https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard.

Некоторые незначительные детали могут отличаться от дистрибутива до дистрибутива (например. /usr/bin/ по сравнению с. /usr/local/bin/), но в целом почти все дистрибутивы Linux следуют за той же структурой каталогов.

Отвечать на Ваш вопрос:

Корневые каталоги пользователей находятся в /home/. В принципе Linux является многопользовательской операционной системой. У Вас может просто быть одна учетная запись пользователя на Вашем ноутбуке с его корневым каталогом в /home/<username>/, но если Вы изучаете /home/ на общем сервере Linux Вы будете видеть много корневых каталогов: один для каждой учетной записи пользователя. Идея состоит в том, что у каждого пользователя системы есть полномочия записи только в их собственном корневом каталоге. Если Ваше имя пользователя bob можно считать и записать и удалить файлы в /home/bob/ но Вы ничего не можете коснуться в /home/alice/ или в /var/log/.

root отличается все же. root административный пользователь и имеет полномочия записи везде в системе (и может действовать как любой пользователь системы). Таким образом, это имеет смысл это root имеет специальный корневой каталог /root/ потому что root не обычный пользователь. Кроме этого, /root/ просто обычный каталог без специального волшебства, хотя это тихо возможный (даже, вероятно), что системные утилиты полагаются /root/ будучи домом пользователя root.

Когда Вы выполняетесь sudo -i в терминале Вы переключаетесь от того, чтобы быть, например, обычного пользователя bob к тому, чтобы быть root. Обратите внимание, что этот переключатель влияет только на окно терминала, где Вы ввели sudo -i. Для Вашего файлового менеджера Вы неподвижны bob и если Вы открываете другое окно терминала, Вы неподвижны bob там. В этом контексте символ ~ сокращение от корневого каталога текущего пользователя. Для bob ~ средства /home/bob/ но для root ~ средства /root/.

Я надеюсь, что это разъясняет вещи для Вас.

15
ответ дан 23 November 2019 в 01:46

Я вижу, что все отвечают, что происходит, когда Вы входите в систему как корень (Вы получаете ~ каталог, который не находится в / домой), но никто не говорит почему. Вот то, почему:

Если весь/, домашняя структура становится неприменимой и необходимо зафиксировать ее, или если необходимо перераспределить / домой, потому что она исчерпывает пространство, необходимо сделать так так или иначе. Вы не можете войти в систему как никакой пользователь, который имеет ~ в / домой, потому что Вы отказали бы, как только Вы пытались сделать что-либо. Таким образом, у пользователя root есть hir ~ в другом месте.

14
ответ дан 23 November 2019 в 01:46

Вы говорите, что Вы не опытный пользователь, таким образом, я попытаюсь записать пошаговый ответ.

При использовании Linux необходимо помнить некоторые важные вещи:

  • Linux является многопользовательской системой. Это было задумано как этот с начала, после философии Unix (заметьте другой подход, проявленный Windows, который был задуман как система отдельного пользователя),

  • Как многопользовательская система, Linux имеет способность разделить файлы, принадлежащие каждому пользователю в системе. Путем Linux выполняет, это путем присвоения каждому пользователю подпапки в /home/ каталог. Каждый пользователь регистрирует, принадлежат ему, и только он может открыть их, изменить их или позволить другим пользователям использовать их. С другой стороны каждый файл в файловой системе принадлежит пользователю, и тот пользователь имеет власть по тому, кто видит или использует тот файл. Как упомянуто в другом ответе, первоначально пользователи могли поместить свои файлы где угодно в систему, но в какой-то момент стало очевидно, что вещи должны быть лучше организованы, и /home/ ("дом наклонной черты") стал местом, где файлы пользователя должны быть.

  • Существуют, однако, файлы, в которых нуждаются сама система и/или каждый пользователь в системе: двоичные файлы, файлы устройств, системные файлы, и так далее (помните: в Linux, и в любой другой подобной Unix системе, все - файл). Это глобально необходимые файлы хранится в различных местах вдоль файловой системы, организованной в различных папках в корне файловой системы: /. Кроме того, эти глобально необходимые файлы не принадлежат конкретному пользователю системы, но к самой системе..., но это может сбивать с толку: кто владеет двоичными файлами? Кто дает полномочия по этим глобально необходимым файлам?

  • Так как каждому файлу в системе "нужен владелец", должен быть "специальный пользователь", который может управлять глобально необходимыми файлами. Кроме того, этот "специальный пользователь" может сделать вещи, которые не может сделать никакой другой пользователь в системе: он может создать других пользователей для системы. Этого пользователя называют "суперпользователем" (для нас смертные) или "корень" (для системы).

  • Теперь, этот суперпользователь является другим пользователем системы, но имеет полномочия (и обязанности) далеко выше тех из других пользователей: обслуживание, например. Таким образом, естественно думать, что "корню" нужно место для помещения его материала, но Это не должно быть перепутано с материалом, принадлежащим другие пользователи. Так, вместо того, чтобы иметь подпапку ниже /home/, "корень" имеет его собственное зарезервированное пространство в файловой системе: /root/ (названный "корнем наклонной черты").Помните: "корень" является совершенно особым пользователем, таким образом, ему нужно специальное, привилегированное место для помещения его материала.

  • Теперь, Ubuntu не включили корневую учетную запись по умолчанию, таким образом, у "нормального" пользователя должны быть полномочия над системой в целом. Это то, где sudo ("переключают пользователя и делают"), команда умирает: это позволяет обычному пользователю (ранее включенный в список "sudoers") выполнять команды, как будто он был другим пользователем, например, "базируйтесь".

  • Наконец, это -i опции, средние ", моделируют начальный вход в систему". Это означает это sudo считает данные профиля "целевого пользователя" прежде, чем выполнить данную команду. Если Вы не обеспечиваете команду, то sudo запустит экземпляр оболочки с (корневого) профиля целевого пользователя..., и это запускается с перемещения в "домашнюю" папку "целевого пользователя". Так sudo -i переместит Вас, чтобы сделать домашнюю папку корня (/root/).

Я надеюсь, что это помогает Вам понять то, что происходит с sudo -i.


Править

Я думаю, что оставил somethings неразъясненными, таким образом, я добавлю их здесь:

  • Я сказал выше: "в Linux все - файл". И я имею в виду это, буквально! Ваши документы и изображения являются файлами, но также и терминалами (те, к которым можно получить доступ нажатие [CTRL] + [ALT] + [Fn]), и физические диски и клавиатура, например. Подобная Unix система работает путем чтения или записи данных из файлов и направления потока данных к соответствующим файлам в системе, которые представляют файл, Вы работаете с, и вход ключей, которые Вы вводите, и вывод, который Вы видите на экране. Некоторые из этих файлов могут использоваться непосредственно пользователями, но некоторые другие не могут; например, Вы не можете читать или записать непосредственно в жесткий диск, но необходимо позволить Linux для соединения нормальной, доступной для просмотра папки к файлу устройств (под /dev/) представление Вашего жесткого диска.

  • Файловая система Linux может охватить несколько физических дисков. Простой пример - при включении перьевого диска USB: Linux может смонтировать, что диск (монтирование является процессом, которым система соединяет стандартную папку, где Вы видите файлы в оболочке или навигаторе файла к файлу устройств в /dev/) и можно работать с ним, и когда Вы сделаны, Вы просите, чтобы Linux демонтировал диск и затем удалил его из USB-порта. Важная вещь здесь состоит в том, что этот "монтируются - размонтирование" влияние цикла *та же файловая система", Вы каждый день используете: Вы не создаете новую файловую систему каждый раз, Вы добавляете или удаляете физический диск, но Вы добавляете, что физический диск к файловой системе (снова, сравните эту философию с подходом Wndows).

  • Так как файловая система может охватить несколько физических дисков, становится очевидно, что различные файлы системы могут быть записаны в различные физические диски. Один диск может сохранить системные двоичные файлы (/bin/) и другой может хранить файлы пользователя (/home/ и его потомки). В установке с несколькими приводами распространено иметь /home/ записанный в другом физическом диске, чем /root/, таким образом, если системные повреждения и пользователи не могут войти в систему потому что диск где /home/ работа остановок, корень может. (Это упрощенно..., много вещей должны быть скопированы в каждый физический диск, чтобы позволить корню входить в систему, если никакой другой пользователь не может, но это может дать Вам общее представление).

  • И та тильда (~) символ... это обозначает корневой каталог текущего пользователя. Если Вы зарегистрированы как "боб", то cd ~ возьмет Вас к /home/bob/, но если Вы зарегистрированы как "корень", затем cd ~ возьмет Вас к /root/

tl; доктор Поэтому теперь, я думаю, что все сказано:

  • "корень" является специальным пользователем с полномочиями и обязанностями далеко выше других пользователей

  • "/корень /" место, где "корень" может сохранить свой материал, не рискуя им перепутанный с другим материалом, принадлежащим обычным пользователям. Эта папка может быть записана в другой физический диск, чем /home/.

  • sudo -i запускает оболочку, моделирующую вход в систему корня, и это подразумевает перемещение в домашнюю папку корня. Как с любым другим пользователем, cd ~ возьмет Вас к Вашему корневому каталогу, но, если Вы - корень, это будет /root/

  • Если система установлена через различные физические диски, корень может войти и попытаться починить вещи, даже если другой диск в системе перестал работать.

8
ответ дан 23 November 2019 в 01:46

Базовая причина корневого каталога корня, который будут рассматривать по-другому:

Когда вещи идут не так, как надо, необходимо смочь выполнить системные задачи восстановления, как только Вам удается смонтироваться / файловая система.

В зависимости от Вашей установки пользовательские корневые каталоги могли бы быть в другой файловой системе, или они могли бы даже быть смонтированы по сети.

Чтобы войти в систему как корень (т.е. ввести корень имени и пароль root при приглашении ко входу в систему) от консоли, Вам только нужна одна смонтированная файловая система.

(Это также, почему базовые утилиты находятся в / мусорном ведре и/sbin вместо/usr/bin или/usr/sbin - все в/usr потребляемо.)

7
ответ дан 23 November 2019 в 01:46

Другие вопросы по тегам:

Похожие вопросы: